wc コマンドを使うことでファイルの行数や文字数をカウントできます。
1. 基本
1.1. ファイルの行数や文字数を数える
下記のファイルを確認してみましょう。
$ cat test.txt
test test
test test
wc コマンドの実行結果は下記のようになりました。左から行数、単語数、文字数になります。wc コマンドでは改行コードもカウントします。各行にそれぞれ1個の改行コードが含まれているので、この例では文字数が20個になっています。
$ wc test.txt
2 4 20 test.txt
改行コードを数えたい場合は l オプションを使用します。改行コードが2個であることがわかりました。
$ wc -l test.txt
2 test.txt
2. 応用
パイプを使って他のコマンドの出力結果を数えることもできます。
2.1. あるディレクトリのファイルやフォルダ数を数える
例として /etc ディレクトリに存在するファイルとディレクトリの数を調べてみましょう。まず ls -lで表示結果を確認してみます。
$ ls -l /etc
total 1084
-rw-r--r--. 1 root root 44 Aug 8 17:10 adjtime
-rw-r--r--. 1 root root 1529 Apr 1 2020 aliases
-rw-r--r--. 1 root root 12288 Jun 26 19:09 aliases.db
drwxr-xr-x. 2 root root 261 Aug 8 16:02 alternatives
-rw-------. 1 root root 541 Jan 14 2022 anacrontab
-rw-r--r--. 1 root root 55 Aug 8 2019 asound.conf
drwxr-x---. 3 root root 43 Jun 26 19:06 audisp
drwxr-x---. 3 root root 83 Jun 26 19:09 audit
drwxr-xr-x. 2 root root 22 Jun 26 19:17 bash_completion.d
-rw-r--r--. 1 root root 2853 Apr 1 2020 bashrc
drwxr-xr-x. 2 root root 6 Jan 14 2022 binfmt.d
<以下、略>
次にこの結果を wc コマンドで受け取ってみましょう。
$ ls -l /etc | wc
187 1708 10707
<以下、略>
一番左の数字が行数を示しています。ls -l コマンドの結果の1行目は “total XXXX” はファイルでもディレクトリでもないので除外します。従って186個のファイルが存在することがわかりました。
以上。
コメント