我有一个 bash 文件,我想在其中进行一些更改。
sed -i 's/ / /g' testfile
sed -i -e 's/#[a-z]$//' -e '/^$/d' testfile
sed -i 's/ *$//' testfile
sed '/##=/ r header' testfile
在第一个命令中,想用空格替换 TAB ,然后删除注释(还有以 ## 开头的注释)和空行。之后想在我的文件中的指定模式之后插入一个文件。命令顺序有问题吗?
答案1
您可以在一次 sed 中给出多个指令,例如:
sed 's/\t/ /g;/^ *$/d;s/^#/NODIESE/' testfile
这一行
- 将制表符替换为空格
- 删除以空内容开头的行(或空行)
- 将开头处的 Dash 替换为 NODIESE
因此您的测试文件仅被处理一次,并且您仅启动 sed 一次。