![删除 bash 中包含符号或空行的行](https://linux22.com/image/189674/%E5%88%A0%E9%99%A4%20bash%20%E4%B8%AD%E5%8C%85%E5%90%AB%E7%AC%A6%E5%8F%B7%E6%88%96%E7%A9%BA%E8%A1%8C%E7%9A%84%E8%A1%8C.png)
如何从目录中的所有 .asc 文件中删除包含“=”和“HISTORY”(始终大写)的行以及所有空行?
我认为它会是这样的:
for file in /media/linux/DATADISK/*.asc
do
sed '/=/d'
sed '/HISTORY/d'
done
答案1
一口气完成所有工作。
sed -E '/=|HISTORY|^$/d' /media/linux/DATADISK/*.asc
替换^$
为^[[:blank:]]*$
并删除那些仅包含制表符/空格的行,或者^[[:blank:]]*\r?$
如果文件的换行符可以是 Windows 样式,则使用\r\n
。
要就地更新更改,请添加-i
选项,请参阅man sed
了解详情。