head:非法选项--q



尝试使用:head -n 1 *.csv | awk -F, '{print NF}'计数目录中csv文件中的列数

由于head首先打印文件名,因此会导致多个零。尝试了head -q -n 1 *.csv,它通常在标准Linux服务器上工作,但在这里(本地Mac(我得到了:

head: illegal option -- q
usage: head [-n lines | -c bytes] [file ...]

有趣的是,在man head中,我甚至不认为-q是一个有效的参数。

有什么想法吗?

其他人已经在另一个答案中解释了为什么它不起作用。这里有一个可移植的解决方法:

awk -F, 'FNR==1 {print NF}' *.csv

这是因为它不是一个合法的参数。

POSIX标准详细说明了哪些命令行标志是关键程序(如head、tail和大部分binutils(所必需的,GNU组织偶尔会添加超出该标准的额外标志。

这是一个额外的"-q〃;quiet标志,它不是POSIX标准的一部分,而是GNU产品的一部分。您已经进入了一个不使用GNU实用程序的平台。

我建议你只围绕它编写脚本,或者使用grep等管道来只保留你需要的行。

最新更新