合并 SED 命令

合并 SED 命令

将这两个 SED 命令组合在一起的最佳方法是什么?第一个命令搜索 CSP,然后向下移动一行。第二个命令在第 3 列中放置一个分号。

sed -ne '/CSP/{n;p;}' test1>test2
sed 's/./;/3' test2>final

该命令需要作用于一行数据,不能单独执行。

答案1

一般来说,sed命令可以放在一起,用换行符或分号分隔。实际上有点像 sh 或 python。 (大多数sed命令,即某些命令需要换行符。)

因此,要将n,p和放在一起,您可以只使用分号,就像您在第一个命令中s所做的那样。{n;p}在这种情况下,完整的命令是:

sed -ne '/CSP/{n;s/./;/3;p;}' test1 > final

或者你可以用换行符来代替:

sed -ne '/CSP/{n
s/./;/3
p
}' test1 > final

但是,对于简单的单行代码来说,在命令行上执行此操作有点烦人(显然在 中更难),但如果将脚本保存到文件中,csh则可能更有用。sed

答案2

我还发现,当我必须使用较大的文件并保持更多文件内容不变时,删除一些参数会有所帮助。我正在回答这个问题,以防将来有人查找这个问题。

sed '/CSP /{n;s/./;/3;}' test1>test2

相关内容