【发布时间】:2017-07-15 13:36:39
【问题描述】:
我有以下问题。
我有一个带有序列的文件,我想找到一个特定的模式并将其替换为另一个模式,但仅限于特定的次数。
例如:
ABCDEFGHIJKLMN
ABCDEFGHIJKLMN
ABCDEFGHIJKLMN
ABCDEFGHIJKLMN
ABCDEFGHIJKLMN
ABCDEFGHIJKLMN
我想查找“DEFGHI”并将其替换为“ABCDEF”仅 3 次。
sed -i 's/DEFGHI/ABCDEF/g' /home/user/test.txt
我不想全局替换;相反,我只想更换 3 次。
【问题讨论】:
-
对不起。我想用另一个模式替换。例如:带 ABCDEF 的 DEFGHI
-
这很重要。模式可以每行出现一次以上吗?
-
@toolic 你假设每一行都有一个匹配项(即,如果它或多或少会中断)。
-
我投票决定将此问题作为题外话结束,因为任务描述不清楚,并且 OP 没有回应澄清请求。 (特别是:模式是否可以在一行中出现多次?模式是否可以在一行中出现少于一次(即是否存在根本不匹配的行)?)
-
perl -pi -e's/DEFGHI/ABCDEF/ and $i++ if $i<3' /home/user/test.txt。用 sed 做起来非常困难。