测试文件中的模式是否存在,评估是否存在

时间:2015-06-06 21:49:41

标签: bash awk

我想测试文件中是否存在模式。

  1. 如果模式存在(在列表中的文件中),请执行替换并更新相应的文件。
  2. 如果模式不存在,则不执行任何操作。
  3. 到目前为止,我已经完成了:

        if [ -f $((`awk '/Pattern1/' $FILE`))];then
            sed 's/Pattern1/\nWORD/g' $FILE > a
            mv a $FILE
        fi
    

    但是,当我测试它时,我收到以下错误:

    syntax error: invalid arithmetic operator
    

    我不想评估数字部分,只要pttern~字符串是否存在。

    输入文件1

    Rho =  1.1955904623E+02     Rho at Nucleus =  1.1955904594E+02
    

    输入file2

    Rho =  1.1955904623E+02
    

1 个答案:

答案 0 :(得分:2)

你可以简单地继续进行替换,如果模式存在某些东西会被改变,如果没有,将不会对该文件进行任何操作。

awk '{sub(/Pattern1/, "\nWORD"); print}' $FILE > tmp && mv tmp $FILE

检查this question

相关问题