Shell 如何删除目录中每个文件中的空行?

Shell 如何删除目录中每个文件中的空行?,shell,unix,sed,spaces,gnu-findutils,Shell,Unix,Sed,Spaces,Gnu Findutils,如何删除目录(理想情况下也是子目录)的每个txt文件中的空行/空行 上面的代码正确地提取了文件列表,但我不确定传递什么正则表达式来删除空行。使用GNU查找和GNU使用: find . -name '*.txt' -exec sed -ri '/^\s*$/d' {} \; 您可能需要使用sed,请参阅:谢谢链接。如何将sed也用于子目录?sed-r'/^\s*$/d'afaik就地编辑也适用于多个文件,因此您可以在此处使用批量执行-r选项是GNU扩展。这可以轻松地重构为标准POSIXsed;但

如何删除目录(理想情况下也是子目录)的每个txt文件中的空行/空行


上面的代码正确地提取了文件列表,但我不确定传递什么正则表达式来删除空行。

使用GNU查找和GNU使用:

find . -name '*.txt' -exec sed -ri '/^\s*$/d' {} \;

您可能需要使用
sed
,请参阅:谢谢链接。如何将sed也用于子目录?sed-r'/^\s*$/d'afaik就地编辑也适用于多个文件,因此您可以在此处使用批量执行
-r
选项是GNU扩展。这可以轻松地重构为标准POSIX
sed
;但是,
-i
选项也不是严格的标准(尽管广泛可用)。为了最大限度地提高可移植性,请尝试查找-exec perl-ni-e'除非打印/^\s*$/'{}\尽管自相矛盾的是Perl根本没有正式标准化。(也可以查看您的
find
是否支持
-exec…{}+
find . -name '*.txt' -exec sed -ri '/^\s*$/d' {} \;