【发布时间】:2015-08-19 12:01:04
【问题描述】:
以下命令将从包含它的所有第 13、14、15...29 行中删除 PATTERN:
sed -i 13,29s/PATTERN// file
但是,我只想从第 13 行和第 29 行中删除 PATTERN。显然,我可以使用
sed -i 13s/PATTERN//;29s/PATTERN// file
但是我的模式足够长,因此不方便,所以我只想指定一次 PATTERN。有任何想法吗?我试图寻找答案,但一无所获。
另外,sed 使用逗号而不是破折号来匹配一系列行是否有正当理由?我觉得不合逻辑。
提前致谢。
【问题讨论】:
-
将您的模式存储在一个变量中并重复该变量?
-
太复杂了。我正在寻找更方便的东西。
-
好吧,我也称它为方便...替代方案是 awk。
NR == 13 || NR == 29也很方便 -
你能分享完整的命令吗?
-
这实际上与this 是同一个问题,请注意您所要求的两个行号地址之间的“逻辑或”答案的难度。