Linuxwcコマンドのガイド
1. 序章
このチュートリアルでは、Linux wcコマンドについて説明します。 いくつかの基本的な使用法と、いくつかのより高度な例を紹介します。
2. 基本的な使用法
wc は、ファイルのリストまたは標準入力のいずれかで、提供された入力の単語、行、またはバイトをカウントするための便利なユーティリティです。 いくつかの基本的な使用法を見てみましょう。
サンプルファイルから始めましょう:
% cat colors.txt
Red Orange
Purple
Green
Brown
Blue
Black
まず、ファイルの行数を取得しましょう。
% wc -l colors.txt
6 colors.txt
単語数を数えることもできます:
% wc -w colors.txt
7 colors.txt
ファイル内の文字数を数えることもできます。
% wc -m colors.txt
41 colors.txt
また、テキストファイルを使用しているため、バイト数を数えると同じ数になります。
% wc -c colors.txt
41 colors.txt
3. wcとgrepの組み合わせ
wc を他のLinuxコマンドと組み合わせると、いくつかの便利なタスクを実行できます。
grep と組み合わせて、wcは一連のファイルでの発生回数を示します。
たとえば、特定のタイプのエラーが複数のログファイルで発生した数を把握する必要があるとします。
最初のサンプルログファイルを見てみましょう。
% cat log_mon.txt
12:31: error - broken pipe
12:33: warn - missing input
12:35: error - broken pipe
12:37: error - service down
12:39: warn - retry failed
そして今、私たちの2番目:
% cat log_tues.txt
12:41: error - broken pipe
12:43: warn - missing input
12:45: error - broken pipe
12:49: warn - retry failed
grepを-cフラグで実行すると、ファイルごとの内訳が表示されます。
% grep -c "broken pipe" log*.txt
log_mon.txt:2
log_tues.txt:2
ただし、合計数を取得するには、wcと-l(行数)オプションを使用します。
% grep "broken pipe" log*.txt | wc -l
4
grep はすべての結果を標準入力に送信し、wcはその入力の行カウントを実行します。
4. wcとfindの組み合わせ
別の例として、 wc をいくつかのコマンドと組み合わせて、プロジェクトのソースコードの行数を数えましょう。 BaeldungLombokプロジェクトのデモを見ているとしましょう。 find 、 xargs 、および wc を組み合わせて、プロジェクト内のソースコードの行数を取得できます。
% find ./src/main -name "*.java" | xargs wc -l
18 ./src/main/java/com/baeldung/lombok/getter/GetterBooleanPrimitiveSameAccessor.java
16 ./src/main/java/com/baeldung/lombok/getter/GetterBooleanPrimitive.java
13 ./src/main/java/com/baeldung/lombok/getter/GetterBooleanSameAccessor.java
15 ./src/main/java/com/baeldung/lombok/getter/GetterBoolean.java
15 ./src/main/java/com/baeldung/lombok/getter/GetterBooleanType.java
36 ./src/main/java/com/baeldung/lombok/intro/GetterLazy.java
16 ./src/main/java/com/baeldung/lombok/intro/HasContactInformation.java
43 ./src/main/java/com/baeldung/lombok/intro/User.java
22 ./src/main/java/com/baeldung/lombok/intro/ApiClientConfiguration.java
11 ./src/main/java/com/baeldung/lombok/intro/ClientBuilder.java
25 ./src/main/java/com/baeldung/lombok/intro/LoginResult.java
29 ./src/main/java/com/baeldung/lombok/intro/UserEvent.java
26 ./src/main/java/com/baeldung/lombok/intro/Utility.java
17 ./src/main/java/com/baeldung/lombok/intro/ContactInformationSupport.java
11 ./src/main/java/com/baeldung/lombok/intro/ImmutableClient.java
39 ./src/main/java/com/baeldung/lombok/builder/customsetter/Message.java
25 ./src/main/java/com/baeldung/lombok/builder/singular/Person.java
14 ./src/main/java/com/baeldung/lombok/builder/singular/Sea.java
17 ./src/main/java/com/baeldung/lombok/builder/defaultvalue/Pojo.java
19 ./src/main/java/com/baeldung/lombok/builder/inheritance/buildermethodname/Child.java
10 ./src/main/java/com/baeldung/lombok/builder/inheritance/buildermethodname/Parent.java
16 ./src/main/java/com/baeldung/lombok/builder/inheritance/buildermethodname/Student.java
11 ./src/main/java/com/baeldung/lombok/builder/inheritance/superbuilder/Child.java
11 ./src/main/java/com/baeldung/lombok/builder/inheritance/superbuilder/Parent.java
10 ./src/main/java/com/baeldung/lombok/builder/inheritance/superbuilder/Student.java
11 ./src/main/java/com/baeldung/lombok/builder/ClientBuilder.java
11 ./src/main/java/com/baeldung/lombok/builder/ImmutableClient.java
13 ./src/main/java/com/baeldung/lombok/builder/Widget.java
520 total
5. 結論
この記事では、Linux wcコマンドの使用方法を見てきました。 いくつかの基本的なオプションと、 wc を他のLinuxコマンドと組み合わせて、すっきりとしたワンライナーを作成する方法を見てきました。