从字符串末尾删除数字,示例输入:
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