我有一个有 50 行的文件。每行由三列组成。前两列是变量,这将作为参数传递以返回第三列的值。
对于前..
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}'`
有什么建议么?
谢谢。
你必须使用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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)