修改一行以匹配行中文本的开始和中间部分

To modify a line that match start and mid part of a text in a line inplace

我有一个文件说 Abc.txt 。它由许多行组成。 我想使用 sed 或者可能是修改该文件中该行的任何其他命令。 假设一行只有一个词,如下所示

ABCDsdfg01klmn

在这里我检查行是否以 ABC 开头,然后检查它是否也有 00 ,在这种情况下我想通过说 PM 修改 01 。我该怎么做?

我想补充一些更具体的。我希望只对 ABCD 和 01 之间有 4 个字符的行执行此操作。我不想修改它,因为在 ABCD 和 01 之间有 3 个字符或 5 个字符,例如 ABCDsfg01klmnABCDsdfgh01klmn

ABCDsdfgPMklmn

sed:

sed -r 's/^(ABCD.{4})01/PM/' file

如果一行包含 ABC 加上 4 个字符和一个 01,则 s 命令用于将 01 替换为 PM