【问题标题】:Sed - Remove digits from end of line/stringSed - 从行/字符串的末尾删除数字
【发布时间】:2018-03-04 08:03:43
【问题描述】:

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

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】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      相关资源
      最近更新 更多