【问题标题】:Unix command to replace strings inline based on multiple criteria基于多个条件内联替换字符串的 Unix 命令
【发布时间】:2015-09-15 21:15:03
【问题描述】:

是否可以将文本文件的每一行 string3> 替换为 replaced_string3>

仅当 criteria_A AND criteria_B 有效时。

输入:


string1 string2 criteria_A string3 criteria_B

string4 string3 criteria_A string5 criteria_C


需要的输出

string1 string2 criteria_A string3 criteria_B

string4 replaced_string3 criteria_A string5 criteria_C




备注: 对于我使用的一个标准: sed -i '/criteria_A/s/\string3/replaced_string3/g' text.txt

【问题讨论】:

  • 如果criteria_A AND criteria_B is valid.你改的行没有criteria_B是什么意思
  • 确实:应该是A和C

标签: string unix replace awk sed


【解决方案1】:

你可以用{}嵌套:

sed -i '/criteria_A/ { /criteria_B/ s/\string3/replaced_string3/g }' text.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2011-03-30
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多