Regex 具有awk的多个正则表达式
我有一份档案。我必须使用Regex 具有awk的多个正则表达式,regex,linux,awk,Regex,Linux,Awk,我有一份档案。我必须使用AWK命令在Linux中逐个应用多个正则表达式。 以下是我的示例文件: Start connection Test from LAN end Link are Test is complete available Test Start connection from LAN Test is complete end Test1 is complete Test2 is complete Link are available Link are Test is co
AWK
命令在Linux
中逐个应用多个正则表达式。
以下是我的示例文件:
Start connection Test from LAN end
Link are Test is complete available
Test
Start connection from LAN
Test is complete
end
Test1 is complete
Test2 is complete
Link are available
Link are Test is complete available
Test1
我想应用3条规则:
开始
和结束
链接
和可用之间查看
Test
awk'/Start/{f=1}!f/结束/{f=0}'
,awk'/Link/{f=1}!f/可用/{f=0}'
和awk'/Test/{f=1}f/完成/{f=0}'
现在,我想将所有内容合并到一个AWK
我如何才能做到这一点?只需使用不同的虚拟变量:
awk '/Start/ {f=1} /Link/ {g=1} /Test/ {h=1} !f && !g && h; /end/ {f=0} /available/ {g=0} /complete/ {h=0}'
只需使用不同的虚拟变量:
awk '/Start/ {f=1} /Link/ {g=1} /Test/ {h=1} !f && !g && h; /end/ {f=0} /available/ {g=0} /complete/ {h=0}'
这个awk应该可以工作:
awk '{
gsub(/Start.*end/, "");
gsub(/Link.*available/, "");
split($0, a, "\n");
for (i=0; i<length(a); i++)
if (index(a[i], "Test"))
print a[i]
}' RS= file
awk'{
gsub(/Start.*end/,“”);
gsub(/Link.*可用/,“”);
拆分($0,a,“\n”);
对于(i=0;i此单个awk应工作:
awk '{
gsub(/Start.*end/, "");
gsub(/Link.*available/, "");
split($0, a, "\n");
for (i=0; i<length(a); i++)
if (index(a[i], "Test"))
print a[i]
}' RS= file
awk'{
gsub(/Start.*end/,“”);
gsub(/Link.*可用/,“”);
拆分($0,a,“\n”);
对于(i=0;i