0

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

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

相反,它没有做任何改动

4

1 回答 1

1

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

sed 可能有一种方法来处理 CRLF 行尾,但经过短暂搜索后我找不到它。

于 2018-03-04T00:03:43.247 回答