私はコマンドラインを初めて使います! 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
。