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

Ele*_*reg 3 bash sed text-processing

如何从目录中的所有 .asc 文件中删除包含“=”和“历史”(始终大写)的行以及所有空行?

我认为它会是这样的:

for file in /media/linux/DATADISK/*.asc
do
    sed '/=/d' 
    sed '/HISTORY/d' 
done
Run Code Online (Sandbox Code Playgroud)

αғs*_*нιη 10

一次性完成所有操作。

sed -E '/=|HISTORY|^$/d' /media/linux/DATADISK/*.asc
Run Code Online (Sandbox Code Playgroud)

除了删除那些只包含制表符/空格的行之外,替换^$^[[:blank:]]*$,或者^[[:blank:]]*\r?$如果您的文件的换行符可以是 Windows-Style 则使用\r\n

就地更新更改,添加-i选项,man sed有关详细信息,请参阅。