Ipad

コマンドラインでテキストファイルに簡単に行番号を追加する

コマンドラインでテキストファイルに簡単に行番号を追加する

ターミナルブライアンからの質問です。「テキストファイルに行番号を追加したいのですが、テキストエディタで行番号を追加するのではなく、テキストファイル内の各項目の横に番号を追加するということです。これを自動化することは可能でしょうか?それとも、1、2、3と入力して手作業でファイルを編集し、頭がおかしくなりそうになる作業でしょうか?」

はい、テキストファイルに行番号をハードコードするのは簡単です…その方法を詳しく説明します! 明確に言うと、これは各行の左側に行番号を追加し、各行の先頭に適切な行番号を付加するものです。これはテキストファイルにハードコードされるため、TextWrangler、VIM、BBEditなどのアプリで単に行番号を表示するのとは異なります。

開始するには、ターミナルにアクセスし、コマンド ライン プロンプトで次の操作を実行します。

cat を使用してテキストファイルに行番号を追加する

これはこれまでのところ最も簡単な方法です:
cat -n file > file_new

「file」を行番号を追加するファイル名に置き換え、「file_name」をエクスポートした名前に変更するだけです。

次のように 'nl' コマンドを使用することもできます。

nl コマンドを使用してテキストファイルにハードコアな行番号を挿入する

ここでも、「filename」と「filenamenumbered」を、行番号を追加するファイルの適切な名前に置き換えます。

nl -ba -s ': ' filename > filenamenumbered

以上です!どちらのトリックも使えます。コメント欄には、テキストファイル内の行番号をより簡単にする解決策を何人かの読者からいただきました。上記は簡単な順に挙げましたが、以下にawkを使った解決策もご紹介します。

Macターミナルコマンドラインツール「awk」を使用することもできますが、これは上記の方法よりも少し複雑なので、興味がある場合はターミナルを起動して実行してください。

まず、万が一何か問題(構文エラーなど)が発生した場合に備えて、テキストファイルを必ずバックアップしておきましょう。問題のテキストファイルのバックアップができたので、行番号を直接ファイルに書き込んでみましょう。

awk '{printf("%5d : %s\n", NR,$0)}' filename > filenamenumbered

filename は元のファイル、filenamenumbered は awk コマンドの出力に行番号を付加したファイル名です。出力テキストドキュメントの各行項目の前には、番号とコロンが付きます。

1: 単語が書かれた行
2: 単語が書かれた行
3: 単語が書かれた行

元のテキストファイルは変更されていないはずですが、構文エラーが発生した場合は、バックアップファイルを作成しておけば問題ありません。このコマンドはawkをサポートするUnix OSであればどれでも動作しますので、FreeBSD、Linux、Mac OS Xなど、思いつく限りのOSで自由に実行できます。