String 比较两个字符串变量的AWK
我想在脚本的开头获得一个用户输入(作为参数),然后使用awk将其与字符串进行比较! 我使用-v将变量添加到awk命令中(通过输入字符串的方式) 但由于某些原因,它不会显示预期的输出! 我知道问题出在我插入awk命令的变量上,因为如果我把我想找到的字符串,我知道的具体字符串放在文件中,它会找到它并打印出我想要的结果。 我会给你看代码String 比较两个字符串变量的AWK,string,bash,awk,String,Bash,Awk,我想在脚本的开头获得一个用户输入(作为参数),然后使用awk将其与字符串进行比较! 我使用-v将变量添加到awk命令中(通过输入字符串的方式) 但由于某些原因,它不会显示预期的输出! 我知道问题出在我插入awk命令的变量上,因为如果我把我想找到的字符串,我知道的具体字符串放在文件中,它会找到它并打印出我想要的结果。 我会给你看代码 awk -v x=$a -F '[:,]' ' { if ($1 == $a ) print $5 }' /etc/passwd 我也尝试过: awk -v
awk -v x=$a -F '[:,]' ' { if ($1 == $a ) print $5 }' /etc/passwd
我也尝试过:
awk -v x="$a" -F '[:,]' ' { if ($1 == "$a" ) print "$5" }' /etc/passwd
但什么都没有。我找不到解决办法。
这里需要澄清。我已经做了正确的分离,我知道该文件包括什么
这里是一个没有变量的示例
awk -v x=$a -F '[:,]' ' { if ($1 == "psz" ) print $5 }' /etc/passwd
psz是我在a变量(a=“psz”)处的awk命令之前设置的字符串,如下所示。
我知道的是在第一个字段的/etc/passwd中($1) 您应该使用以下选项代替此选项:
awk -v x=$a -F '[:,]' ' { if ($1 == $a ) print $5 }' /etc/passwd
这:
您将
x
定义为一个变量,这应该在awk
中使用。现在请通过您的线程中提到的链接,您只需修复如何在awk
中调用shell变量的过程,然后您就应该很好了。谢谢,我很笨lol@Psz_13,不,你不是。可能发生在任何人身上:)
awk -v x=$a -F '[:,]' ' { if ($1 == x ) print $5 }' /etc/passwd