删除 bash 中包含符号或空行的行

删除 bash 中包含符号或空行的行

如何从目录中的所有 .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了解详情。

相关内容