我正在尝试使用 shell 脚本删除文本文件中每条记录末尾的尾随空白。假设文件中有以下列:
123 456 789' '
234 567 890' '
期望的输出:
123 456 789
234 567 890
我尝试过tr -d ' '
,但它删除了行中的所有空白。使用时sed 's/[[:blank:]]+$//g'
,它将记录放在同一行中。
答案1
为了GNU-sed
:
使用:
sed 's/[[:blank:]]\+$//g'
代替sed 's/[[:blank:]]+$//g'
(注意\
前面的+
)
如果您不想使用反斜杠在......面前加号,您可以将--regexp-extended
(-E
简称)与您的sed
命令一起使用,如下所示:
sed -E 's/[[:blank:]]+$//g'
更新:问题是您没有使用GNU sed
;你的sed
似乎是这个。
为您” sed
:
尝试这个:
sed -e 's/[:blank:]+$//g'
或者也可以使用双括号:
sed -e 's/[[:blank:]]+$//g'
(我刚刚浏览了它的文档,但是现在,有了这些理解和信息,您应该能够为“您的”编写正确的命令sed
)
答案2
方法是
<input.txt sed -r 's/ +$//g' >output.txt