sed删除数字的尾随模式

时间:2015-11-30 17:26:15

标签: regex bash sed

我有一个.txt文件,其中最后一列包含文字后面的数字模式,如'Baker 2-13'或'Charlie 03-144'。我想删除该行末尾的所有数字,然后留给Baker和Charlie。我已经尝试在我的awk语句结束时使用sed命令,但没有成功。

sed -E 's/[0-9]{1,2}"-"[0-9]{1,3}$//'

我已经尝试将空格和回车添加到我的sed命令,但仍然没有运气。

sed -E 's/[0-9]{1,2}"-"[0-9]{1,3}\s\r$//'

我也试过这个,但它只在我回显文本样本时才有效,它在我的.txt文件的每一行都不起作用

echo "CHARLIE 02-157" | sed -E 's/[0-9]*([0-9])+\-[0-9]*([0-9])+$//'

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这应该有效:

sed -i.bak -E 's/[0-9]{1,2}-[0-9]{1,3}$//' file

cat file
Baker
Charlie

您不需要在模式中引用连字符。

答案 1 :(得分:0)

简单的sed解决方案

sed 's/[- 0-9]*$//'  

这将删除尾随破折号,空格和数字!