我注意到在运行命令时此语句无法识别分隔符
awk -F',' "{print $4}" wtd.csv
然而,这个确实如此。
awk -F',' '{print $4}' wtd.csv
有什么理由?我确信这是我忘记的一些一般bash规则的一部分。
答案 0 :(得分:2)
如果你使用双引号,$4
将被Bash取代(可能是空字符串)。您需要转义$
才能在双引号中使用它。
发生这种情况的例子:
[thom@lethe ~]$ echo '$4'
$4
[thom@lethe ~]$ echo "$4"
[thom@lethe ~]$ echo "\$4"
$4
答案 1 :(得分:1)
您忘记了双引号允许bash变量插值。在这种情况下,它尝试将$4
替换为shell的第四个参数,该参数通常为空。
单引号阻止bash插值并将文字$4
传递给awk。
答案 2 :(得分:0)
您将获得与以下相同的结果:
awk -F',' '{print $4}' wtd.csv
awk -F',' "{print \$4}" wtd.csv