我有以下格式的流输出,我想过滤和打印特定字段:
customer $2 $3
Address $2 $3 $4 $5 $6
例如第1行的打印字段#2和第2行的打印字段#6,然后用空格分隔打印它们。
有人可以分享如何在perl,awk或sed..etc中完成此操作吗?
答案 0 :(得分:2)
在awk中,您可以在变量中保存数据(并使用模式中的行号)。例如,在您的示例中
从第1行打印字段#2,从第2行打印字段#6,然后用空格分隔打印它们。
命令是
awk 'NR==1 {x=$2} NR==2 {print x " " $6}'
答案 1 :(得分:1)
awk 'NR==1{s=$2;next} {print s ORS $6 ORS s, $6}' file
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed -rn '/^customer/{N;s/^((\S+)\s*){2}.*\n((\S+)\s*){6}.*/\2 \4/p}' file