wc -l
を使用してファイル内の行数をカウントしたいのですが、次のスペースとファイル名なしで、その数だけを出力します。コメントから編集:ファイル名には数字が含まれている場合があります。
現在、私がしている場合:
wc -l /path/to/file
176行のファイルでは、出力は次のとおりです。
176 /path/to/file
これはbashスクリプト内にあり、結果の数値は変数の値として割り当てられます。
私は使用します:
<file wc -l
cat file | wc -l
に相反して、シェルをフォークして別のプロセスを実行する必要はありません(より高速に実行されます)。
% time </tmp/ramdisk/file wc -l
8000000
wc -l < /tmp/ramdisk/file 0,07s user 0,06s system 97% cpu 0,132 total
% time cat /tmp/ramdisk/file | wc -l
8000000
cat /tmp/ramdisk/file 0,01s user 0,16s system 80% cpu 0,204 total
wc -l 0,09s user 0,10s system 94% cpu 0,203 total
(/tmp/ramdisk/file
は、I/Oとキャッシュを式から外すためにRAMディスクに格納されていました。)
ただし、実際には小さなファイルの場合、違いは無視できます。
さらに別の方法は次のとおりです。
wc -l file | cut -d ' ' -f 1
私のテストでは、<file wc -l
とほぼ同じ性能を発揮します。
Catを使用して、シンプルなライナーでこれを行うことができます。 cat deluge1.log | wc -l
簡単に答えてください。長く描かれた答えは必要ありません。