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)

$foobarstdinスペルを誤って入力すると、無限ループ/witingが発生する可能性があります$fobar

おすすめ記事