私はこれらのような線を持っています、そして、私は私が実際に持っている線の数を知りたいです...
09:16:39 AM all 2.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 94.00
09:16:40 AM all 5.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 91.00
09:16:41 AM all 0.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 96.00
09:16:42 AM all 3.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 96.00
09:16:43 AM all 0.00 0.00 1.00 0.00 1.00 0.00 0.00 0.00 98.00
09:16:44 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
09:16:45 AM all 2.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 92.00
Linuxコマンドを使ってそれらすべてを数える方法はありますか?
wc
を使う:
wc -l <filename>
これは<filename>
の行数を出力します。
$ wc -l /dir/file.txt
3272485 /dir/file.txt
または、結果から<filename>
を省略するには、wc -l < <filename>
を使用します。
$ wc -l < /dir/file.txt
3272485
データをwc
にパイプすることもできます。
$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63
すべての行を数えるには
$ wc -l file
パターンを使用して行のみをフィルタリングしてカウントするには、次のようにします。
$ grep -w "pattern" -c file
または-vを使用して一致を反転します。
$ grep -w "pattern" -c -v file
-e、-i、および-x引数を調べるには、grepのマニュアルページを参照してください。
wc -l <file.txt>
または
command | wc -l
いろいろな方法があります。 wc
を使うことは一つです。
wc -l file
その他
awk 'END{print NR}' file
sed -n '$=' file
(GNU sed)
grep -c ".*" file
ツールwc
は、UNIXおよびUNIX系オペレーティングシステムの「ワードカウンター」です。-l
オプションを追加することで、ファイル内の行数を数えるためにも使用できます。したがって、wc -l foo
はfoo
内の行数を数えます。次のようなプログラムからパイプで出力することもできます:ls -l | wc -l
。これはカレントディレクトリにいくつのファイルがあるかを教えてくれます。
ディレクトリ内の全ファイルの合計行を確認したい場合は、findとwcを使用できます。
find . -type f -exec wc -l {} +
wc
を使う:
wc -l <filename>
必要なのが行数だけであれば(行数と戻ってくるバカなファイル名ではなく):
wc -l < /filepath/filename.ext
前述のように、これらも機能します(ただし、他の理由で劣っています)。
awk 'END{print NR}' file # not on all unixes
sed -n '$=' file # (GNU sed) also not on all unixes
grep -c ".*" file # overkill and probably also slower
私はこれを使っています:
cat myfile.txt | wc -l
それはファイル名を表示しないので、私はそれが受け入れられた答えよりもそれを好む、そしてあなたはそれを修正するためにawk
を使う必要はない。受け入れられている答え:
wc -l myfile.txt
しかし、私はGGB667の答えが一番いいと思います。
wc -l < myfile.txt
私はおそらく今後使用する予定です。私のやり方より少し短いです。誰かがそれを好む場合に備えて、私は古いやり方をしています。出力はこれら2つの方法と同じです。
このようにnl
を使用してください。
nl filename
man nl
から:
行番号を追加して、各FILEを標準出力に書き出します。 FILEがない場合、またはFILEが - の場合は、標準入力を読みます。
複数のファイル行を数える方法を探しているときにこの質問を見ました。したがって、.txtファイルの複数のファイル行を数えたい場合は、次のようにします。
cat *.txt | wc -l
1つの.txtファイルでも実行されます。
上記の方法が推奨されますが、 "cat"コマンドも役立ちます。
cat -n <filename>
ファイルの全内容を行番号で表示します。
wc -l file.txt | cut -f3 -d" "
行数だけを返します
cat file.log | wc -l | grep -oE '\d+'
grep -oE '\d+'
:桁数を返すために _のみ_ 。以下のように、ファイルの出力をwc -l
にリダイレクト/パイプするだけで十分です。
cat /etc/fstab | wc -l
それからそれはいいえを提供します。行のみ。
または、ファイル名のパターンを持つサブディレクトリ内のすべての行を数えます(例:ファイル名にタイムスタンプを含むログファイル)。
wc -l ./**/*_SuccessLog.csv
私はこれが old であることを知っていますが、それでも: フィルタリングされた行数をカウントします
私のファイルはこんな感じです:
Number of files sent
Company 1 file: foo.pdf OK
Company 1 file: foo.csv OK
Company 1 file: foo.msg OK
Company 2 file: foo.pdf OK
Company 2 file: foo.csv OK
Company 2 file: foo.msg Error
Company 3 file: foo.pdf OK
Company 3 file: foo.csv OK
Company 3 file: foo.msg Error
Company 4 file: foo.pdf OK
Company 4 file: foo.csv OK
Company 4 file: foo.msg Error
送信されたファイル数を知りたい場合は、
grep "OK" <filename> | wc -l
OR
grep -c "OK" filename
私はちょうどこれを行うためのプログラムを作りました(node
を使って)
npm install gimme-lines
gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html
行数を数えて結果を変数に格納するには、次のコマンドを使用します。
count=$(wc -l < file.txt) echo "Number of lines: $count"
他の人が言ったようにwc -l
が最善の解決策ですが、将来の参考のためにあなたはPerlを使うことができます:
Perl -lne 'END { print $. }'
$.
は行番号を含み、END
ブロックはスクリプトの最後に実行されます。