是否有任何工具/UNIX 单行可以就地删除多个文件的尾随空格。
例如可以与find结合使用。
最佳答案
你想要
sed --in-place 's/[[:space:]]\+$//' file
这将删除所有 POSIX 标准定义的空白字符,包括垂直制表符和换页符。此外,它只会在尾随空格实际存在的情况下进行替换,这与使用零个或多个匹配器 (*
) 的其他答案不同。
--in-place
只是 -i
的长形式。我更喜欢在脚本中使用长形式,因为它更能说明该标志的实际用途。
它可以轻松地与 find
集成,如下所示:
find . -type f -name '*.txt' -exec sed --in-place 's/[[:space:]]\+$//' {} \+
如果您使用的是 Mac
正如评论中所指出的,如果您没有安装 gnu 工具,上述内容将不起作用。如果是这种情况,您可以使用以下方法:
find . -iname '*.txt' -type f -exec sed -i '' 's/[[:space:]]\{1,\}$//' {} \+
关于shell - 如何删除多个文件的尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711051/