【发布时间】:2021-10-23 01:56:21
【问题描述】:
我正在尝试对行进行编号,但是我需要使用sed的-i参数,我该如何加入这两个命令?
sed '=' file.txt | sed 'N;s/\n/ => /'
【问题讨论】:
我正在尝试对行进行编号,但是我需要使用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 管道。
【讨论】: