Sed - 从行/字符串末尾删除数字

问题描述 投票:0回答:1

我试图删除文本文件中每行末尾的数字,我尝试过使用:

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

但它不起作用,但如果我是回声输入,即

echo "Bla1Bla123" | sed 's/[0-9]\+$//'

它将正常工作并按预期输出

Bla1Bla

从末尾删除“123”。

但是当我尝试使用input.txt时,它不能为每一行做到这一点..

input.txt的例子是

heyexample1:123example123
h123h:i123i123

然后应该输出

heyexample1:123example
h123h:i123i

相反,它不做任何改动

bash sed cygwin gnuwin32
1个回答
1
投票

您的文件可能使用\r\n行结尾编码(因为您在Windows上)。尝试使用's/[0-9]\+\r$/\r/'替换命令(故意保留\r)。

sed可能有办法处理CRLF行结尾,但在短暂搜索后我找不到它。

© www.soinside.com 2019 - 2024. All rights reserved.