通过给定输入-Linux获取输出

时间:2014-06-17 12:50:38

标签: linux bash awk

echo “Enter Number:” 
read n1 
awk '/^$/ {ca=""; cp=""} /^#/ {ca=ca " " $0} /^$n1/ && ca {cp=ca; ca=""} /^$n1/ {print $0 " " cp}’ FILENAME

输入数字后,我应该通过给定输入得到输出。

输入数字:1

输出

1测试快乐1234 980捕获

请建议我上面的脚本

1 个答案:

答案 0 :(得分:0)

您需要使用awk的-v选项传递shell变量:

awk -v patt="^$n1" '
    /^$/ {ca=""; cp=""} 
    /^#/ {ca=ca " " $0} 
    $0 ~ patt && ca {cp=ca; ca=""}
    $0 ~ patt {print $0 " " cp}
’ FILENAME