如何让awk命令在Bash脚本中工作?

时间:2016-11-06 15:59:57

标签: linux bash shell awk

我有bash脚本,用户输入将它们存储在变量中!我使用awk命令搜索文件中的某些模式:

#!/bin/bash
echo "Enter Data"
echo "Enter first pattern"
read firstpat

echo "Enter number"
read num1

echo "Enter name"
read name1

echo "Enter second pattern"
read secpat

echo "Enter second number"
read num2

echo "Enter name
read name2

awk '$0 >= "$firstpat $num1:$name1" && $0 <= "$secpat $num2:$name2"' /dir1/file1

脚本中的所有内容都可以正常工作,但awk命令不会显示任何结果。如果我在没有变量而不是文件的终端中运行相同的awk命令,它就可以工作!

1 个答案:

答案 0 :(得分:0)

awk中,您必须再次为awk脚本定义shell变量。您可以使用与shell脚本相同的变量名称。

您可以像这样使用awk

awk -v "firstpat=$firstpat" -v "num1=$num1" -v "name1=$name1" -v "secpat=$secpat" -v "num2=$num2" -v "name2=$name2"  '$0 >= "$firstpat $num1:$name1" && $0 <= "$secpat $num2:$name2"' /dir1/file1