修改与行中文本的开头和中间部分匹配的行

时间:2015-03-15 15:24:32

标签: unix awk sed

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

ABCDsdfg01klmn

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

我想进一步具体说明。我希望它只针对ABCD和01之间有4个字符的行。我不想修改它的行,例如ABCD和01之间有3个字符或5个字符,例如ABCDsfg01klmnABCDsdfgh01klmn

ABCDsdfgPMklmn

1 个答案:

答案 0 :(得分:3)

使用sed

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

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