我在文件中有所有替换命令replace.sed
,并且我将它与sed的-f标志一起使用
sed -f replace.sed InputFile
。但是现在我遇到了一个条件,我只需要在给定输入文件的偶数行上应用这些替换规则(即仅在第2,4,6行等等)。我不能在{中放置任何条件语句{1}}文件也被其他脚本使用。
答案 0 :(得分:5)
-f file
就像一个include(它将将脚本文件的内容添加到要执行的命令),因此您可以将其内容放在一组命令中:
sed -e '2~2{' -f replace.sed -e '}'
答案 1 :(得分:0)
您可以像这样使用awk
:
awk 'NR%2==0 {do some with lines here}' file
然后它会改变2,4,6 ......上的一些......
EKS
awk 'NR%2==0 {sub(/old/,"new"}1' file
这将在第2,4,6行将old
替换为new
,然后打印所有行(已更改且未更改)