【问题标题】:Replace string in file based on regular expression match根据正则表达式匹配替换文件中的字符串
【发布时间】:2022-11-23 09:24:56
【问题描述】:

我有一个包含条目列表的文件,如下所示:

SERVER_ONE,19:05:07
SERVER_TWO,26,19:05:07

我需要做的是对于只有一个逗号的行,我需要用 ,0, 替换它们。

我的正则表达式捕获了我需要正确替换的内容:

egrep "[A-Z],[0-9]{2}:" uptime.csv
SERVER_ONE,19:05:07

但我在实施替换策略时遇到了一些麻烦。

【问题讨论】:

  • grep 不会替换。您需要使用sed
  • 我明白,但我不确定如何实施 sed

标签: regex linux bash


【解决方案1】:

Perl 使这变得容易。试试这个命令:

perl -pi -e 's/,/,0,/ if (m/^[^,]*,[^,]*$/)' uptime.csv

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 2019-01-30
    • 2015-11-30
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    相关资源
    最近更新 更多