Sed - 从 line/string 末尾删除数字

Sed - Remove digits from end of line/string

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

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

相反,它没有任何改变

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

sed 可能有一种方法可以处理 CRLF 行结尾,但我简单搜索后找不到。