连接两个命令,数字行



我正在尝试为行编号,但我需要使用sed的-i参数,我如何连接这两个命令?

sed '=' file.txt | sed 'N;s/n/ => /'

除了使用-i

,还有其他方法可以重写文件使用moreutils包中的sponge

sed '=' file.txt | sed 'N;s/n/ => /' | sponge file.txt

带有临时文件

tmp=$(mktemp)
sed '=' file.txt | sed 'N;s/n/ => /' > "$tmp" && mv "$tmp" file.txt

或者,如果你不需要使用sed, GNU awk

gawk -i inplace '{print NR, "=>", $0}' file.txt

或perl

perl -i -pe 's/^/$. => /' file.txt

这可能适合您(GNU sed):

sed -zi 's/n$//;s#.*#echo "&"|sed =|sed "N;s/\n/ => /"#e' file

在sed调用中运行sed管道。

最新更新