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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sed - 从行/字符串末尾删除数字相关的知识,希望对你有一定的参考价值。

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

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

相反,它不做任何改动

答案

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

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

以上是关于Sed - 从行/字符串末尾删除数字的主要内容,如果未能解决你的问题,请参考以下文章

使用 sed 删除文本文件最后一行中的新行

sed:仅删除引号内的所有非字母数字字符

错误3004:从行开始映射片段时出现问题

如何使用 sed 删除文件的最后 n 行

sed 取特定行 到末尾行

读取文件并从行中删除 \n 和空格 [重复]