使用 awk 打印命令行中给出的文件数

使用 awk 打印命令行中给出的文件数

我是命令行新手!我想使用 awk 来打印命令行中给出的文件数。当我尝试这样做时,我陷入了无限循环。

awk 'BEGIN{};'
awk 'END{print ARGC}'

它开始读取文件,但我不知道如何停止它。

答案1

正确的语法是

awk 'END {print ARGC}' file1 ... filen 

意识到

  • 必须给出文件(elase awk 将等待 stdin 中的输入
  • awk 本身在 ARGC 中算作 1

获取文件数量

awk 'END {print ARGC-1}' file1 ... filen

无限循环

(这应该是一个评论,因为没有任何线索说明原因)。

假设你写

 foobar="/my/path1 /other/path2"
 C=$(awk 'END{ print ARGC-1}' $fobar)

$foobar当您将 stdin 拼写错误时,您可能会陷入无限循环/witing $fobar

相关内容