我用的是 Mac。我有一个目录,里面的文件名称类似ABC_2016-06-08_09-23.csv
。我想提取每个文件名中第一个下划线之前的部分。我试过了,ls | awk -F_ "{print $1}"
但得到的是完整的文件名。我做错了什么?
答案1
这里的问题是您使用双引号而不是单引号,因此正确的是:
awk -F_ '{print $1}'
当您使用双引号时,shell 将扩展$1
为定义的任何内容。如果定义的内容为空,则将扩展为空,因此您将得到一个{print}
打印整行的简单示例。
$回显“$1”
$ echo "hello_you" | awk -F_ "{print $1}"
hello_you
$ echo "hello_you" | awk -F_ '{print $1}'
hello
看看我们如何才能让它在某种程度上变得有用:
$ myvar="ueee"
$ echo "hello_you" | awk -F_ "{ueee=23; print $myvar}"
23