Unix 修改与在位行中文本的起始部分和中间部分匹配的行的步骤
我有一个文件是Abc.txt。它由许多行组成。 我想使用sed或任何其他命令来修改文件中的该行。 假设这行只有一个单词,如下所示Unix 修改与在位行中文本的起始部分和中间部分匹配的行的步骤,unix,awk,sed,Unix,Awk,Sed,我有一个文件是Abc.txt。它由许多行组成。 我想使用sed或任何其他命令来修改文件中的该行。 假设这行只有一个单词,如下所示 ABCDsdfg01klmn 这里我检查行是否以ABC开头,然后检查它是否也有00,在这种情况下,我想修改01,比如说PM。我怎么做 我想补充一些更具体的问题。我希望只对在ABCD和01之间有4个字符的行执行此操作。我不想修改它,例如在ABCD和01之间有3个或5个字符的行,例如ABCDsfg01klmn或ABCDsdfgh01klmn 使用sed: sed -r
ABCDsdfg01klmn
这里我检查行是否以ABC开头,然后检查它是否也有00,在这种情况下,我想修改01,比如说PM。我怎么做
我想补充一些更具体的问题。我希望只对在ABCD和01之间有4个字符的行执行此操作。我不想修改它,例如在ABCD和01之间有3个或5个字符的行,例如ABCDsfg01klmn
或ABCDsdfgh01klmn
使用sed
:
sed -r 's/^(ABCD.{4})01/\1PM/' file
如果一行包含ABC
加上4个字符和一个01,则s
命令用于将01
替换为PM
和sed
:
sed -r 's/^(ABCD.{4})01/\1PM/' file
如果一行包含ABC
加上4个字符和一个01,则s
命令用于将01
替换为PM
和sed
:
sed -r 's/^(ABCD.{4})01/\1PM/' file
如果一行包含ABC
加上4个字符和一个01,则s
命令用于将01
替换为PM
和sed
:
sed -r 's/^(ABCD.{4})01/\1PM/' file
如果一行包含
ABC
加上4个字符和一个01,则s
命令用于将01
替换为PM
进一步编辑我的问题。很抱歉,前面的一个文件不完整。我想它应该是sed-r'/ABC.{5}01/s/01/PM/'文件
根据您对问题的评论,可能会产生ABCPM0101…
——您可能需要sed's/^\(ABC…)01/\1PM/'
@glennjackman,尽管命令更简单,它不会产生相同的输出吗?有一个条件,OP只想匹配^ABC
(否D),答案是否。您的将替换行中的第一个“01”,无论它出现在字符串中的哪个位置;我的问题替换了四个“空格”字符后的一个。进一步编辑了我的问题。很抱歉,前面的一个文件不完整。我想它应该是sed-r'/ABC.{5}01/s/01/PM/'文件
根据您对问题的评论,可能会产生ABCPM0101…
——您可能需要sed's/^\(ABC…)01/\1PM/'
@glennjackman,尽管命令更简单,它不会产生相同的输出吗?有一个条件,OP只想匹配^ABC
(否D),答案是否。您的将替换行中的第一个“01”,无论它出现在字符串中的哪个位置;我的问题替换了四个“空格”字符后的一个。进一步编辑了我的问题。很抱歉,前面的一个文件不完整。我想它应该是sed-r'/ABC.{5}01/s/01/PM/'文件
根据您对问题的评论,可能会产生ABCPM0101…
——您可能需要sed's/^\(ABC…)01/\1PM/'
@glennjackman,尽管命令更简单,它不会产生相同的输出吗?有一个条件,OP只想匹配^ABC
(否D),答案是否。您的将替换行中的第一个“01”,无论它出现在字符串中的哪个位置;我的问题替换了四个“空格”字符后的一个。进一步编辑了我的问题。很抱歉,前面的一个文件不完整。我想它应该是sed-r'/ABC.{5}01/s/01/PM/'文件
根据您对问题的评论,可能会产生ABCPM0101…
——您可能需要sed's/^\(ABC…)01/\1PM/'
@glennjackman,尽管命令更简单,它不会产生相同的输出吗?有一个条件,OP只想匹配^ABC
(否D),答案是否。您的将替换行中的第一个“01”,无论它出现在字符串中的哪个位置;我的将替换四个“间距”字符后的一个。ABCD03020101klmn
在abo
和0101
开头之间有4个字符(0302
)-您希望这与您的regexp匹配吗?与ABCD010101有什么关系?
?它是否匹配?ABCD03020101klmn
在ABCD
和0101
开头之间有4个字符(0302
)-您希望它与您的regexp匹配吗?与ABCD010101…
有什么关系?它是否匹配?ABCD03020101klmn
在ABCD
和0101
开头之间有4个字符(0302
)-您希望它与您的regexp匹配吗?与ABCD010101…
有什么关系?它是否匹配?ABCD03020101klmn
在ABCD
和0101
开头之间有4个字符(0302
)-您希望它与您的regexp匹配吗?与ABCD010101…
有什么关系?这是一场比赛吗?