我有以下示例文件
/etc/sysconfig/network/script.sh = -exe $Builder
run_installation 123 44 556 4 = run_installation arg1 arg2 arg3 948
EXE=somthing
EXE somthing
我有三个问题(我写bash脚本)
如何通过sed或awk验证字符串run_installation是否存在于行的第一行(行中的第一个单词)和“=”字符后面如下(文件)
< / LI>文件中的字符串EXE可以是“EXE”或“EXE =”,如何通过sed EXE或EXE =
删除我做:
sed s'/EXE//g' | sed s'/EXE=//g'
但在我的bash脚本中不是很好的方法
•我需要三个不同的答案!
利迪娅
答案 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