我有一个有50行的文件.每行由三列组成.前两列是变量,它将作为参数传递,以返回第3列的值.对于ex .. command_file.txt是文件,它包含
A B 10 C D 20 E F 30 G H 50 I J 70 ...
我有一个脚本,使用以下命令.
#!/user/bin/sh
READ_FILE=/export/home/user/command_file.txt
VA1=A
VA2=B
GET_VALUE=`awk '/ -v var="$VA1" '$1 ~ var' -v var1="$VA2" '$1 ~ var1''/ $READ_FILE l awk '{print $3}'`
echo $GET_VALUE
当我调用此脚本将A和B作为参数传递时,我希望返回值10.但它返回错误.但是如果我在下面的命令上硬编码它就可以了.
GET_VALUE=`awk '/A B'/ $READ_FILE lawk '{print $3}'`
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢.
你必须awk's在awk脚本开始之前使用变量传递来避免毛茸茸的引用,并修复其他问题:
#!/user/bin/sh
READ_FILE=/export/home/user/command_file.txt
VA1=A
VA2=B
GET_VALUE=$(awk -v var="$VA1" -v var1="$VA2" '$1 ~ var && $2 ~ var1 {print $3}' $READ_FILE)
echo $GET_VALUE
Run Code Online (Sandbox Code Playgroud)