GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでテキストファイルに行番号を追加する方法

テキストファイルの標準出力に行番号を追加する方法を考えたことはありますか?この簡単なガイドでは、特定のテキストファイルに行番号を追加する方法について説明します。ファイルに行番号を追加する方法は複数あります。ここでは、それを行うための6つの異なる方法について説明しました。今後もメソッドを追加していきます。このガイドをブックマークして、後で戻って追加があるかどうかを確認することをお勧めします。

方法1-「nl」コマンドを使用する

「nl」コマンドは、ファイルに行番号を追加するためのものです。指定されたファイルを行番号を追加して標準出力に書き込みます。 file.txtという名前のファイルがあります 以下の内容で。

$ cat file.txt 
This is line1
This is line2
This is line3

This is line5


This is line8

上記の出力でわかるように、ファイルには8行あり、3行は空です。行番号を追加しましょう。

これを行うには、次を実行します:

 $ nl file.txt
 1 This is line1
 2 This is line2
 3 This is line3
 
 4 This is line5
 
 
 5 This is line8

nlコマンドは、空の行を考慮しません。空白以外の行にのみ番号が追加されます。空白行を含むすべての行に番号を付ける場合は、 -bを使用します 以下のようなフラグ。

 $ nl -b a file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

また、数字の後に記号/特殊文字を追加することもできます。たとえば、数字の後にドット(。)を追加するには、次のコマンドを実行します。

 $ nl -s "." file.txt 
 1.This is line1
 2.This is line2
 3.This is line3
 
 4.This is line5
 
 
 5.This is line8

出力の幅を揃えることができます。これを行うには、以下のように-wフラグを使用します。

$ nl -w2 file.txt

方法2-「cat」コマンドの使用

catコマンドは、ファイルの内容を表示するために使用されます。ファイルの出力に数値を追加する場合は、以下のように-nフラグを使用します。

 $ cat -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

または、以下のように標準出力を新しいファイルに渡すこともできます。

$ cat -n file.txt > newfile.txt

繰り返される空の行を削除することもできます。

 $ cat -s -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 This is line8

方法3-「awk」コマンドを使用する

awkコマンドを使用してファイルの出力に行番号を追加するには、次のコマンドを実行します。

$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
1.This is line1
2.This is line2
3.This is line3
4.
5.This is line5
6.
7.
8.This is line8

お気づきかもしれませんが、BEGINパラメーターで開始番号を1として割り当てました。以下に示すように、他の任意の開始番号(たとえば、5)を割り当てることができます。

$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
5.This is line1
6.This is line2
7.This is line3
8.
9.This is line5
10.
11.
12.This is line8

空白行を考慮したくない場合は、次のコマンドを使用します。

$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt

上記のコマンドを覚えるのが少し難しいと思われる場合は、代わりに次のコマンドを使用してください。

$ awk '{ print FNR " " $0 }' file.txt 
1 This is line1
2 This is line2
3 This is line3
4 
5 This is line5
6 
7 
8 This is line8

数字とテキストの間のスペースを増やしたい場合は、次のコマンドを実行します。

$ awk '{ print FNR "\t " $0 }' file.txt

方法4-「sed」コマンドを使用する

sedコマンドを使用してファイルの標準出力に行番号を追加するには、次のコマンドを実行します。

$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
1 This is line1
2 This is line2
3 This is line3

5 This is line5


8 This is line8

sedコマンドには、私が最も気に入っている優れた機能があります。 Nを表示できます ファイルの3行目。たとえば、ファイルの3行目を表示するには、次のコマンドを実行します。

$ sed -n 3p file.txt 
This is line3

方法5-「less」コマンドを使用する

lessコマンドを使用してファイルの標準出力に行番号を付けるには、次のコマンドを実行します。

 $ less -N file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

方法6-「grep」コマンドを使用する

grepコマンド 特定の行を含む行を検索するために使用できます。 など、特定の文字を含む行に行番号を追加する場合 、実行:

$ grep -n "line" file.txt 
1:This is line1
2:This is line2
3:This is line3
5:This is line5
8:This is line8

このコマンドは、検索文字列を含む行にのみ番号を追加することに注意してください。指定されたファイル内の他のすべては省略されます。

そして、それがすべてです。上記のコマンドの詳細については、manページを参照してください。これで、テキストファイルに行番号を追加するさまざまな方法がわかりました。これがお役に立てば幸いです。来るより良いもの。しばらくお待ちください!

乾杯!


Linux
  1. Linuxでコマンドラインからファイルとディレクトリを削除する方法

  2. Linuxのコマンドラインを使用してファイルを作成する

  3. 11 Linux diff3 コマンドの例 (3 つのファイルを 1 行ずつ比較)

  1. Linux でヘッダーとトレーラー行をファイルに追加する方法

  2. Linuxでテキストファイルからバイナリを見分ける方法

  3. 1 つのテキスト ファイルを複数の *.txt ファイルに分割する方法は?

  1. Linuxでファイルの終わりにテキストを追加する方法

  2. Linuxでコマンドラインからファイルを分割して結合する方法

  3. Linux で MB ではなく GB で du を表示するにはどうすればよいですか?