在Linux脚本中将变量传递给awk

时间:2017-06-18 17:50:28

标签: bash awk

我尝试编写脚本来获取用户的输入,然后使用该值使用awk搜索test.csv文件并输出到屏幕。 test.csv的内容是:

Name   ID
Rachel 123
Mark     321
Robert  461

例如,我想获取ID#的输入,并使用awk显示与此ID关联的名称。

#!/bin/bash
echo "Enter ID#";
read ID
echo $(awk -v val=$ID  '/val/{print}' /root/Desktop/test.csv

谢谢

1 个答案:

答案 0 :(得分:2)

/val/匹配文字字符串“val”。相反,您可以使用以下命令将每行的第二个字与变量匹配:

awk -v val="$ID"  '$2 == val {print}' /root/Desktop/test.csv

请注意,这假设您的输入是您发布的方式。如果您的.csv文件以通常的逗号分隔,则必须指定-F ,

#!/bin/bash
read -p "Enter id: " id
awk -F , -v val="$id"  '$2 == val { print $1 }' /root/Desktop/test.csv