我有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命令,它就可以工作!
答案 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