【问题标题】:replace string in a file using sed使用 sed 替换文件中的字符串
【发布时间】:2012-09-05 20:26:51
【问题描述】:

我有数据字段格式为 YYYY-MM-DD HH:MM:SS 的文件,但我注意到导出将月份值设置为与分钟值相同。我想使用 sed 将所有行的 Month 值替换为相同的值。

我正在尝试,但没有成功:

sed "s/-[0-9]{2,}-/-08-/g" test.txt

有人知道怎么做吗?

【问题讨论】:

  • 请给出输入数据的样本和希望的过滤结果
  • 示例数据为“2012-59-30 23:59:00,94933883,-,testing”。我希望将其更改为“2012-08-30 23:59:00,94933883,-,testing”
  • 您可以编辑您的帖子以指定发生了什么而不是“工作”吗?只是说“它不起作用”并不是很有帮助。你想发生什么,结果又发生了什么?

标签: linux sed


【解决方案1】:
$ sed 's/^\(....\)-../\1-09/' < input

输入:

$ cat input 
2012-52-05 09:52:00
2012-53-05 09:53:00
2012-54-05 09:54:00

输出:

$ sed 's/^\(....\)-../\1-09/' < input
2012-09-05 09:52:00
2012-09-05 09:53:00
2012-09-05 09:54:00

【讨论】:

    【解决方案2】:

    使用 GNU sed:

    sed -r 's/([0-9]{4})-[0-9]{2}-/\1-08-/' infile
    

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 2017-11-14
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多