sed 删除 Stirng 末尾的数字

sed 删除 Stirng 末尾的数字

从字符串末尾删除数字,示例输入:

example123
example321
example0123

预期输出:

example
example
example

我尝试了以下方法,但没有成功:

sed 's/[0-9]\+$//' <in.txt >out.txt 

我应该怎么办?

答案1

的结果:

$ sed 's/[0-9]\+$//' <in.txt

是:

example
example
example

您执行的命令 ( sed 's/[0-9]\+$//' <in.txt >out.txt) 会将输出定向到out.txt文件

跑步cat out.txt会给你带来你想要的结果。

答案2

\+将在 GNU sed 上工作,不确定其他实现。尝试这个

$ sed 's/[0-9]*$//' ip.txt 
example
example
example

$ # or if ERE option is available
$ sed -E 's/[0-9]+$//' ip.txt 
example
example
example

答案3

可能您的某些文本后面有空格。您不需要$并且删除它可以解决该问题:

sed 's/[0-9]\+//' <in.txt >out.txt

答案4

如果您想直接在输入文件中应用更改,以便不必编写另一个文件,请使用“-i”标志:

sed -i -r 's/[0-9]+$//' in.txt

相关内容