sed + awk +验证文件中的行

时间:2010-07-22 07:01:14

标签: sed

我有以下示例文件

    /etc/sysconfig/network/script.sh = -exe $Builder
    run_installation 123 44 556 4 = run_installation arg1 arg2 arg3 948
    EXE=somthing
    EXE somthing

我有三个问题(我写bash脚本)

  1. 如果在“=”字符
  2. 之后存在字符串“-exe”,则如何通过sed或awk进行验证
  3. 如何通过sed或awk验证字符串run_installation是否存在于行的第一行(行中的第一个单词)和“=”字符后面如下(文件)

    < / LI>
  4. 文件中的字符串EXE可以是“EXE”或“EXE =”,如何通过sed EXE或EXE =

    删除

    我做:

    sed s'/EXE//g' | sed s'/EXE=//g'
    

    但在我的bash脚本中不是很好的方法

  5. •我需要三个不同的答案!

    利迪娅

1 个答案:

答案 0 :(得分:0)

如果没有找到条件1和2,你没有给出进一步的标准......

awk '/=.*-exe/{f=1;}
/^run_installation.*=.*run_installation/{g=1}
/^EXE/{ gsub(/EXE=|EXE/,"") }
f && g{ print "ok" ;exit }
' file

以上代码检查条件1和条件2,并在找到两者时打印“ok”。为了说明的目的,添加了EXE替换条件3。更清楚地说明您想要做什么并在下次显示您的预期输出

要单独验证,

awk '/= -exe/{print "found"}' file
awk '/^run_installation.*=.*run_installation/{print "found"}' file