gpt4 book ai didi

sed - 如何用 sed 删除尾随空格?

转载 作者:行者123 更新时间:2023-12-03 04:51:22 25 4
gpt4 key购买 nike

我有一个简单的 shell 脚本,可以从文件中删除尾随空格。有什么方法可以使这个脚本更加紧凑​​(无需创建临时文件)?

sed 's/[ \t]*$//' $1 > $1__.tmp
cat $1__.tmp > $1
rm $1__.tmp

最佳答案

对于 Linux 和 Unix,您可以使用 sed 的就地选项 -i:

sed -i 's/[ \t]*$//' "$1"

请注意,该表达式将删除 OSX 上的尾随 t(您可以使用 gsed 来避免此问题)。它也可能在 BSD 上删除它们。

如果您没有 gsed,这里是 OSX 上正确的(但难以阅读)sed 语法:

sed -i '' -E 's/[ '$'\t'']+$//' "$1"

三个单引号字符串最终连接成一个参数/表达式。 bash 中没有连接运算符,您只需将字符串一个接一个地放置,中间没有空格。

$'\t' 在 bash 中解析为文字制表符(使用 ANSI-C quoting ),因此制表符正确连接到表达式中。

关于sed - 如何用 sed 删除尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com