高度なテキストカウント技術
このステップでは、パイプを使用して wc コマンドと他のコマンドを組み合わせ、より複雑なテキスト分析タスクを実行する方法を学びます。
パイプを使用した wc コマンドの活用
Linux コマンドの強力さは、パイプ (|) を使用してコマンドを組み合わせる能力にあります。パイプは、あるコマンドの出力を別のコマンドの入力として送ります。
操作対象となる、より複雑なテキストファイルを作成しましょう。
cat > ~/project/article.txt << EOF
Linux Text Processing
====================
Text processing is one of the fundamental skills for any Linux user.
The command line offers powerful tools for processing and analyzing text.
Some of the most common text processing commands include:
- grep: for searching text
- sed: for text transformation
- awk: for pattern scanning and processing
- wc: for counting
This article explores the wc command in detail.
EOF
特定の行のカウント
grep を使用して特定の行を見つけ、それを wc でカウントすることができます。
- 「text」という単語を含む行の数をカウントします。
grep -i "text" ~/project/article.txt | wc -l
-i オプションは、検索を大文字小文字を区別しないようにします。このコマンドの出力は次のようになります。
3
これは、ファイル内に(大文字小文字を問わず)「text」という単語を含む行が 3 行あることを意味します。
特定のテキスト内の単語のカウント
ファイルの特定の部分の単語数をカウントすることもできます。
- 「command」を含む行の単語数をカウントします。
grep "command" ~/project/article.txt | wc -w
出力:
14
これは、「command」という単語を含む行に 14 個の単語があることを示しています。
行数でファイルをソートする
これまでに学んだことを sort コマンドと組み合わせて、行数でファイルを整理しましょう。
wc -l ~/project/*.txt | sort -n
このコマンドは以下のことを行います。
- すべてのテキストファイルの行数をカウントします。
sort -n を使用して結果を数値的に(行数で)ソートします。
出力は、行数が少ないファイルから順に、行数で昇順にファイルがリストされます。
コマンド出力の分析
wc を使用して、任意のコマンドの出力をカウントすることができます。たとえば、プロジェクトディレクトリ内のファイルの数をカウントするには、次のコマンドを使用します。
ls ~/project | wc -l
これは、プロジェクトディレクトリ内のエントリ(ファイルとディレクトリ)の数を示します。
たとえば、現在実行中のプロセスの数をカウントするには、次のコマンドを使用します。
ps aux | wc -l
出力は、プロセスリストの行数になります。これにはヘッダー行が含まれるため(したがって、実際のプロセス数は表示される数より 1 つ少なくなります)。