首发于 Linux学习

linux删除文本文件空白行

sed命令

在Linux中,可以使用sed命令批量删除文本中的空白行。以下是一个示例命令:

sed -i '/^$/d' filename.txt

这个命令将会删除 filename.txt 文件中所有的空白行,并且直接在原文件中进行修改, -i 参数表示直接在文件中进行修改。

解释一下,sed命令可以用来编辑文本,-i表示直接在原文件中进行修改,/^$/d表示删除空白行。具体来说,/^$/ 是一个正则表达式,表示匹配空白行,d则表示删除匹配到的行。

如果你要处理多个文件,可以使用通配符来匹配文件名,例如:

sed -i '/^$/d' *.txt

这个命令将会匹配所有以 .txt 结尾的文件,并且删除其中的空白行。

grep 命令

可以使用 grep 命令来过滤掉空白行,然后将结果输出到一个新文件中。具体命令如下:

grep -v '^$' filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到 newfile.txt 文件中。 -v 参数表示反向选择,也就是选择不匹配正则表达式的行,'^$' 表示匹配空白行。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

grep -v '^$' *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到 newfile.txt 文件中。

还可以使用 grep 命令和正则表达式来删除空白行。以下是一个示例命令:

grep -vE '^[[:space:]]*$' filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中的所有空白行删除。-v 参数表示反向选择,也就是选择不匹配正则表达式的行,-E 参数表示使用扩展的正则表达式,'^[[:space:]]*$' 表示匹配只包含空白字符的行。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

grep -vE '^[[:space:]]*$' *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中的所有空白行删除。

awk 命令

awk 命令也可以用来删除空白行。以下是一个示例命令:

awk NF filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到 newfile.txt 文件中。NF 表示输出非空行,也就是只输出有内容的行。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

awk NF *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到 newfile.txt 文件中。

tr 结合 grep 命令

可以使用 tr 命令将空白行替换为其他字符,然后使用 grep 命令过滤掉这些字符。具体命令如下:

tr -s '\n' < filename.txt | grep -v '^$' > newfile.txt

这个命令将会将 filename.txt 文件中的所有空白行替换为一个换行符,然后使用 grep 命令过滤掉空白行。-s 参数表示压缩连续的换行符为一个换行符,'^$' 表示匹配空白行。

perl 命令

可以使用 perl 命令来删除空白行。以下是一个示例命令:

perl -i -ne 'print if /\S/' filename.txt

这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到原文件中。 -i 参数表示直接在原文件中进行修改,/\S/ 表示匹配非空白字符。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

perl -i -ne 'print if /\S/' *.txt

这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到原文件中。

paste 命令

可以使用 paste 命令将多个文件合并为一个文件,并且去掉空白行。以下是一个示例命令:

paste -s -d '\n' filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中的所有行合并为一行,并且在每行之间加上一个换行符,然后输出到 newfile.txt 文件中。-s 参数表示将多个文件合并为一个文件,-d '\n' 表示在每行之间加上一个换行符。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

paste -s -d '\n' *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中的所有行合并为一个文件,并且在每行之间加上一个换行符,然后输出到 newfile.txt 文件中。

发布于 2023-05-06 09:22 ・IP 属地江苏

文章被以下专栏收录