Linux コマンド wc および nl は、ファイル内の単語数、行数、バイト数などを特定するのに役立ちます。このチュートリアルでは、これら 2 つの非常に便利なコマンドの使用方法をさまざまな例で説明します。
この記事全体の例で使用される基本的なテキスト ファイルを以下に示します。
$ cat sort.txt UK Australia Newzealand Brazil America
Linux nl コマンドの例
Linux の nl ユーティリティは、ファイルの行に番号を付けるために使用されます。
マニュアルページの構文と説明は次のとおりです:
<ブロック引用>
概要
nl [オプション]… [ファイル]…
説明
各 FILE を行番号を追加して標準出力に書き出します。 FILE がない場合、または FILE が - の場合は、標準入力を読み取ります。
1.基本的な例
以下は、nl コマンドを使用してファイルの行に番号を付ける方法を説明する基本的な例です。
$ cat sort.txt UK Australia Newzealand Brazil America $ nl sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America
nl コマンドを使用すると、ファイル sort.txt のすべての行に番号が付けられていることがわかります。
2. -i オプションを使用して任意の値で行番号を増やします
オプション -i を使用すると、行番号のデフォルトの増分 1 をオーバーライドできます。
以下は、-i を使用して行番号の増分を 5 に増やした例です:
$ nl -i5 sort.txt 1 UK 6 Australia 11 Newzealand 16 Brazil 21 America
デフォルトの 1,2,3... の代わりに、行番号が 5 ずつ増加して表示されるようになりました (つまり、1,6,11...)
3. -s オプションを使用して行番号の後に文字列を追加
デフォルトでは、nl コマンドは行番号のみを追加します。ただし、-s オプションを使用すると、行番号と行テキストの間の区切りとして機能する任意の文字列を追加できます。
以下に例を示します:
$ nl -s. sort.txt 1.UK 2.Australia 3.Newzealand 4.Brazil 5.America
行番号の後に文字「.」が追加されていることがわかります。
4. -w オプションを使用して行番号に別の列を使用する
行番号表示の列は-wオプションで変更できます。
以下に例を示します:
$ nl -w1 sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -w2 sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -w3 sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -w4 sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -w5 sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -w6 sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America
上記の完全な出力は、行番号の表示列を変更する方法についての良いアイデアを提供します。
5. -b オプションを使用して、行番号付けに STYLE を使用します
行番号付けには、さまざまな STYLE を使用できます。マニュアルページから:
<ブロック引用>STYLE は次のいずれかです:
- a – すべての行に番号を付ける
- t – 空でない行のみに番号を付ける
- n – 行数なし
- pBRE – 基本的な正規表現 BRE に一致する行のみに番号を付ける
以下の例では、オプション -b で STYLE として正規表現「pA」を使用しています。この正規表現は「A」で始まる行に一致するため、nl コマンドはそれらの行のみに番号を付けます。
$ nl -bpA sort.txt UK 1 Australia Newzealand Brazil 2 America
したがって、「A」で始まる行だけに番号が付けられていることがわかります。
6. -n オプションを使用して行番号を挿入するには、別の FORMAT を使用してください
行番号の挿入に使用できるさまざまな FORMAT があります。マニュアルページから:
<ブロック引用>FORMAT は次のいずれかです:
- ln – 左揃え、先行ゼロなし
- rn – 右寄せ、先行ゼロなし
- rz – 右揃え、先行ゼロ
上記のすべての形式を示す例を次に示します:
$ nl -nln sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -nrn sort.txt 1 UK 2 Australia 3 Newzealand 4 Brazil 5 America $ nl -nrz sort.txt 000001 UK 000002 Australia 000003 Newzealand 000004 Brazil 000005 America
sed コマンドを使用して、ファイル内の行数をカウントすることもできます。
Linux wc コマンドの例
Linux の wc ユーティリティは、ファイルの改行数、単語数、バイト数などの情報を出力するために使用されます。
マニュアルページの構文と説明は次のとおりです:
<ブロック引用>
概要
wc [オプション]… [ファイル]…
wc [オプション]… –files0-from=F
説明
各 FILE の改行数、単語数、およびバイト数を出力し、複数の FILE が指定されている場合は合計行数を出力します。 FILE がない場合、または
FILE が - の場合は、標準入力を読み取ります。単語とは、空白で区切られた、長さがゼロでない一連の文字です。
1.基本的な例
以下は Linux の wc コマンドの基本的な例です:
$ cat sort.txt UK Australia Newzealand Brazil America $ wc sort.txt 5 5 41 sort.txt
出力で生成される 3 つの数値は、行数、単語数、およびバイト数に対応します。これら 3 つの数字の後にファイル名が続きます。
2. -w オプションで単語数を表示
ファイルの単語数は、-w オプションを使用して明示的に表示できます。
以下に例を示します:
$ wc -w sort.txt 5 sort.txt
したがって、単語数が出力され、その後にファイル名が続くことがわかります。
3. -L オプションで最長行の長さを表示
wc コマンドは、ファイル内の最長行の長さを表示するために使用できるオプション -L を提供します。
以下に例を示します:
$ wc -L sort.txt 10 sort.txt
そのため、最長の行 (この場合は「ニュージーランド」) の長さが出力に表示されていることがわかります。
4. -l オプションで改行数を表示
wc コマンドにはオプション -l が用意されており、出力に改行の数を表示できます。
以下に例を示します:
$ wc -l sort.txt 5 sort.txt
そのため、ファイル sort.txt には 5 つの改行があることがわかります
5. -c オプションでバイト数を表示
wc コマンドの -c オプションを使用すると、ファイルの総バイト数を表示できます。
以下に例を示します:
$ wc -c sort.txt 41 sort.txt