技術ノート Linux Linux でファイルにテキストを追加する 7 つの方法

Linux でファイルにテキストを追加する 7 つの方法

既存のコンテンツを含むテキスト ファイルがあり、それにさらにテキストを追加する必要がある場合があります。幸いなことに、これを行うために使用できる Linux コマンドがいくつかあります。これらのコマンドの中には、ファイル内の任意の場所にテキストを挿入できるほど強力なものもあります。

まずはテキストファイルを作成しましょう!

チュートリアルに従うには、行を追加して結果を確認できるテスト ファイルを用意する必要があります。 Linux で空のファイルを作成するには、以下のコマンドを実行します。

 <ファイル名> をタッチします

<filename> をファイルの名前に置き換えます。たとえば、append.txt という名前を付けます。次のコマンドでファイルを作成できます。

 append.txt をタッチします

ファイルの内容を確認するには、次を実行します。

猫の追加.txt

現時点ではファイルにコンテンツがないため、出力は得られません。空のファイルができたので、それにいくつかの行を追加できます。

Linux でファイルにテキストを追加する 7 つの方法

1. echo を使用してファイルにテキストを追加する

echo コマンドは 主に端末にテキストを表示するために使用されますが、ファイルにテキストを追加するために使用することもできます。基本的な構文は次のとおりです。

エコー [オプション] [文字列]

echo コマンドを使用してファイルに行を追加するには、リダイレクト演算子 (>) の助けが必要です。 echo コマンドを使用してファイルにテキスト行を追加するには、次のコマンドを実行します。

 echo "文字列" > ファイル名

「string」を二重引用符内の実際のテキストに置き換えます。 「ファイル名」についても同じことを行います。たとえば、「これはファイルです」というテキストを append.txt に追加する場合は、次を実行します。

 echo "これはファイルです" > append.txt

ここで、cat コマンドを使用してファイルの内容を読み取ろうとすると、出力に次の行が表示されるはずです。

ただし、単一のリダイレクト演算子 (>) を使用すると、ファイルに行を追加できなくなります。同じコマンドを使用して上記のファイルに別の行を追加しようとすると、ファイルの既存の内容がオーバーライドされます。実際にそれを見てみましょう。以下のコマンドを実行します。

 echo "ファイルに行を追加しようとしています" > append.txt

では、これをどうやって克服すればいいのでしょうか?単純。ファイルの内容を上書きせずにファイルにテキストを追加するには、次のように別のリダイレクト演算子 (>>) を使用します。

 echo "ファイルに行を追加しようとしています" >> append.txt

今回は、期待どおり、その行がファイルに追加されます。

Linux でファイルにテキストを追加する 7 つの方法

2. cat を使用してファイルにテキストを追加する

前に見たように、 cat コマンドは ターミナル上にファイルの内容を表示します。コマンドの基本的な構文は次のとおりです。

猫 [オプション]...[ファイル]...

echo コマンドとは異なり、cat コマンドは文字列をパラメータとして直接使用できません。代わりに、あるファイルの内容を別のファイルに追加できます。これを行うには、次のようなコマンドを使用します。

猫 ファイル1 >> ファイル2

「file1」と「file2」を実際のファイル名に置き換えます。したがって、前の例では、次を使用して、別のファイルのコンテンツを append.txt ファイルに追加できます。

 cat anotherfile.txt >> append.txt

cat コマンドを使用するもう 1 つの良い方法は、複数のファイルの内容を 1 つのファイルに連結することです。そのためには、次のようにファイル名を引数として指定します。

猫 ファイル1 ファイル2 ファイル3 >> ファイル4

たとえば、3 人の異なる従業員の情報を含む 3 つの異なるテキスト ファイルがあるとします。これらを 1 つのファイルに結合する必要があります。これを行うには、次を実行します。

猫 従業員1.txt 従業員2.txt 従業員3.txt >> 従業員.txt 

Linux でファイルにテキストを追加する 7 つの方法

3. printf を使用してファイルの末尾にテキストを追加する

C プログラミング言語の経験がある場合は、printf に精通しているかもしれません。しかし、 printf も Linux ツールであることをご存知ですか?名前が示すように、テキストまたはデータを標準出力に出力できます。基本的な構文は次のとおりです。

 printf フォーマット [引数]...

printf を使用してファイルにテキストを追加するには、次を実行します。

 printf "printf を使用してテキストを追加する" >> append.txt

ただし、ご覧のとおり、echo コマンドとは異なり、テキストに改行は追加されませんでした。つまり、手動で行う必要があります。テキストの最後にエスケープ文字「\n」を使用できます。それでは、それを使ってみましょう。

 printf "printf を使用してテキストに改行を追加します\n" >> append.txt

今回は、前の場合とは異なり、ターミナル プロンプトが新しい行に表示されます。

Linux でファイルにテキストを追加する 7 つの方法

4. sedの使用

sed コマンド (ストリーム エディターの略) は、入力に対して基本的なテキスト変換を実行します。このコマンドを使用するには複数の方法があります。ファイルにテキストを追加する基本的な構文は次のようになります。

 sed [オプション] [スクリプト] [ファイル...]

ファイルに行を追加する方法を見てみましょう。そのためには、次のコマンド形式に従ってください。

 sed -i '$ a\<追加するテキスト>' <ファイル名>

山括弧 (<>) 内のテキストをテキスト文字列とファイル名にそれぞれ置き換えます。したがって、ファイルの末尾に行を追加したい場合は、次のコマンドを実行します。

 sed -i '$ a sed を感じない' append.txt

「-i」オプションは、テキストを挿入するために問題のファイルを使用することをシステムに指示します。 「$」記号は、その行がファイルの最後に追加されることを意味します。テキストの前に「a」を追加すると、その行をファイルの既存のコンテンツに追加するようにシステムに指示されます。

sed コマンドの良い点の 1 つは、ファイル内のどこにでもテキストを追加できることです。たとえば、4 行目の後に何かを追加したい場合は、次のようなコマンドを使用します。

 sed -i '4a 4行目の後に追加' append.txt

今回は、4 行目の直後に行が追加されました。

Linux でファイルにテキストを追加する 7 つの方法

5. tee を使用してファイルにテキストを追加する

tee コマンドを使用すると、 標準入力から読み取り、出力をファイルに書き込むことができます。基本的な構文は次のとおりです。

 [オプション]...[ファイル]...

tee コマンドを使用してファイルにテキストを追加するには、2 つの方法があります。 「-a」オプションまたは二重リダイレクト演算子のいずれかを使用します。最初の方法を見てみましょう。

 tee -a append.txt

コマンドを実行すると、対話モードに入ります。任意のテキストを入力し、Enter キーを押してファイルに追加できます。これを実行すると、出力と同じテキストが端末に表示されます。プロンプトを終了するには、Ctrl+D を押します。

もう 1 つの方法では、ターミナルは入力した文字列を繰り返さないため、プロセスがよりクリーンになります。それ以外は、同じように動作します。コマンドは次のとおりです。

ティー >> append.txt

ご覧のとおり、文字列を入力しても、ターミナルには再び表示されませんでした。

Linux でファイルにテキストを追加する 7 つの方法

6.awkの使用

awk コマンドは 、テキスト操作に関して非常に強力です。少し調整すると、このコマンドを使用してファイルにテキストを追加できます。コマンドの構文は次のとおりです。

 awk 'BEGIN{print "気まずい"}' >> append.txt

上の例では、awk コマンドの BEGIN ルールを使用してテキストを出力し、リダイレクト演算子を使用してそれをターゲット ファイルに送信しました。

7. テキストエディタを使用してテキストを追加する

これはかなり単純です。コマンドを使用するのが好きではない場合、または構文を覚えるのが難しい場合は、Linux テキスト エディタを使用してテキスト ファイルに行を追加するだけです。このチュートリアルでは、 nano テキスト エディターを 使用します。

nano でファイルを開くには、次のコマンドを使用します。

ナノ <ファイル名>

上記のコマンドの <filename> を実際のファイルへのパスに置き換えることを忘れないでください。エディターで開いたら、矢印キーを使用してテキスト内を移動し、キーボードを使用して任意の内容を入力できます。

行を追加するには、下矢印キーを使用してファイルの最後に移動するだけです。新しい行を作成する必要がある場合は、Enter キーを押して作成します。次に、必要なテキストを入力します。最後に、Ctrl+O を使用してファイルを保存し、Ctrl+X を使用してエディタを終了します。

コマンドの出力をファイルにリダイレクトする方法

コマンドの出力をファイルに保存したい場合は、リダイレクト演算子 (>>) を使用して保存できます。 ls コマンド を実行して、現在のディレクトリの内容を取得するとします。リストを command.txt というファイルに保存したいとします。そのためには、以下のコマンドを実行します。

 ls >> コマンド.txt

他の Linux コマンド についても同様です。そのコマンドを作成し、リダイレクト演算子を追加してから、出力を保存するファイル名を追加します。

標準出力と標準エラーをファイルに追加する方法

最後に、Linux でのもう 1 つの優れたファイル操作テクニックを紹介したいと思います。標準出力と標準エラーの両方をリダイレクトする場合は、次を実行します。

コマンド >> file.txt 2>&1

「コマンド」フィールドの代わりに、出力をキャプチャしたい特定のコマンドを入力する必要があります。 1 と 2 はそれぞれ標準出力と標準エラーのファイル記述子です。また、& 記号を使用して、リダイレクト演算子の前後にあるのはファイル名ではなくファイル記述子であることを示します。

より優れた Linux ファイル操作エクスペリエンス

この新たに装備された知識を使用すると、選択したファイルにテキストや文字列を簡単に追加できるようになります。状況と Linux コマンドの習熟度に応じて、上記のいずれかの方法を選択できます。

「 Linux でファイルにテキストを追加する 7 つの方法」に関するベスト動画選定!

【Linuxのファイルシステム01】 Ubuntu に新しいディスクを付け足してみる。Linuxのディレクトリ構成、フォーマットの仕方、ext4とは?
【Linuxで復活!! 2000年代前半PC 】第7話 テキストファイル共有