你要
原文链接:https://www.f2er.com/bash/390328.htmlsed --in-place 's/[[:space:]]\+$//' file
这将删除所有POSIX标准定义的空格字符,包括垂直制表符和换页符。此外,它将只做一个替换,如果尾部空白实际上存在,不像使用零或更多匹配器(*)的其他答案。
– in-place只是-i的长整型。我喜欢在脚本中使用长形式,因为它倾向于更多地说明标志实际上做了什么。
它可以很容易地集成发现像这样:
find . -type f -name '*.txt' -exec sed --in-place 's/[[:space:]]\+$//' {} \+
如果你是在Mac上
正如评论中所指出的,如果您没有安装gnu工具,上述方法不起作用。如果是这种情况,您可以使用以下:
find . -iname '*.txt' -type f -exec sed -i '' 's/[[:space:]]\{1,\}$//' {} \+