【问题标题】:Sed command - order of option flags matters? (-ir vs -ri)Sed 命令 - 选项标志的顺序很重要吗? (-ir 与 -ri)
【发布时间】:2013-07-08 19:30:15
【问题描述】:

这是一个错误......还是有解释?

请注意,我不是在寻找解决方法,而是为什么 -ir-ri 的顺序很重要...


想象一下以下数据存储在文件data.txt

1, StringString, AnotherString 545
2, StringString, AnotherString 723
3, StringString, AnotherString 610
4, StringString, AnotherString 118
5, StringString, AnotherString 482

所需的字符串转换

Replace "StringString" with "Strung"

使用以下代码

sed -ir 's/String+/Strung/g' data.txt <-- won't work

sed -ri 's/String+/Strung/g' data.txt <-- will work

我看不出为什么选项标志的顺序很重要?有什么解释吗?

旁注:开关-i“就地编辑文件”,而-r 允许“扩展 正则表达式”(允许 + 运算符)。运行 sed 4.2.1 2010 年 12 月在 Ubuntu 12.10 上。

【问题讨论】:

    标签: regex sed


    【解决方案1】:

    在执行-ir 时,您指定“r”应该是备份文件的后缀。

    如果您按顺序需要它们,您应该可以使用-i -r

    【讨论】:

      【解决方案2】:

      您是否检查过 sed --help 或 man sed

        -i[SUFFIX], --in-place[=SUFFIX]
                       edit files in place (makes backup if extension supplied).
                       The default operation mode is to break symbolic and hard links.
                       This can be changed with --follow-symlinks and --copy.
      

      【讨论】:

      • 在做!!哦,我刚刚在目录中找到了名为“data.txtr”的文件——它是作为备份创建的。我期待一个空格来分隔后缀,但现在它是有道理的。
      猜你喜欢
      • 2016-11-27
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      相关资源
      最近更新 更多