我有一个.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])+$//'
有什么想法吗?
答案 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]*$//'
这将删除尾随破折号,空格和数字!