更确定如何在比赛前显示结果。我可以做一个简单的grep并显示匹配' LLLLL'的行。如何在返回前显示标题。谢谢你的帮助。
数据
switch-031
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.1.14 = STRING: "switch-031"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.1.15 = STRING: "switch-032"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.7.28 = STRING: "switch-033"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.9.29 = STRING: "switch-034"
switch-041
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.10035.13 = STRING: "switch-044"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.10035.15 = STRING: "switch-043"
switch-051
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.8.2 = STRING: "switch-053"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.10.1 = STRING: "switch-054"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.1.3 = STRING: "switch-052_LLLLL"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.12.5 = STRING: "switch-055"
.1.3.6.1.4.1.9.9.23.1.2.1.1.6.12.6 = STRING: "switch-056"
结果
switch-051
"switch-052_LLLLL"
答案 0 :(得分:3)
$ awk 'NF==1{h=$1} /LLLLL/{print h ORS $NF}' file
switch-051
"switch-052_LLLLL"
NF==1 { h=$1 }
会记住标题h
/LLLLL/ { print h ORS $NF }
在LLLLL
条记录上打印标题h
和最后一个字段$NF
答案 1 :(得分:2)
另一种选择awk
awk -v RS= '{for(i=1; i<=NF; i++)
if($i~/LLLLL/) {print $1; print $i; exit}}' file
switch-051
"switch-052_LLLLL"
答案 2 :(得分:0)
你也可以使用perl:
$ perl -ne 'BEGIN{ $/ = "" } print "$1\n$2" if /^(\S+).*?("[^"]+LLLLL")/s' file
switch-051
"switch-052_LLLLL"