ウェブサイト検索

Bashでファイルに書き込む方法


ファイルの読み書きは、bashスクリプトを書く際の一般的な作業の一つです。例えば、コマンドの出力をファイルに保存したり、bashの異なるコマンドを使ってファイルを操作したりします。ターミナルを通じてbashで任意のファイルを書く方法はいくつかあり、スクリプト作成中にファイルを書く方法を探しているなら、このガイドを読んでみてください。

Bashでファイルを書く

上記のように、bashスクリプトでファイルを書く方法はいくつかあります。以下はbashでファイルを書く方法のいくつかです:

  • 方向演算子を使用する
  • teeコマンドを使用する
  • ヒアドキュメントを使用する
  • printfコマンドを使用する

方向演算子の使用

一般的に、bashスクリプトでファイルを書くために使用できる2つの方向演算子があります。一つは単一の角括弧「>」で、もう一つは二重の角括弧「>>」です。この2つの主な違いは、「>」が以前ファイルに存在したデータを新しいデータで上書きするのに対し、「>>」は単にファイルに新しいデータを追加することです。

以下の各方向演算子を使用するには、従うべきそれぞれの構文があります。

echo <“data”> <directional-operator> <filename>

例えば、現在空のファイルにデータを追加するか、任意のファイルのデータを上書きするには、上に示した構文を次のように使用します:

echo “Hello Linuxhint 1” > myfile.txt

次に、ファイルにデータを追加するために“>> ”方向演算子を使用するために、上記の構文を次のように使用しました。

echo “Hello Linuxhint 2” >> myfile.txt

上記の構文はファイルを書き込むだけでなく、存在しない場合はファイルを作成することもあることを忘れないでください。

teeコマンドの使用

bashスクリプティングでファイルを書く別の方法は、teeコマンドを使用することです。以下にこのコマンドの使用法の構文を示します:

echo “data” | tee <filename>

例えば、特定のファイルにデータを追加したい場合、上記の構文はこのように使用できます。

echo “Welcome to Linuxhint” | tee myfile.txt

上記の構文はデータを書き込むだけでなく、現在ファイルに存在するデータを新しいデータで上書きしたい場合にも使用できることを覚えておいてください。

したがって、現在のデータを保持し、新しいデータセットでファイルを書き込みたい場合は、次のように-aフラグを指定した構文を使用してください:

echo “greetings” | tee -a myfile.txt

複数のファイルに同じデータを追加したい場合、このコマンドは大いに役立ちます。このような目的にはteeコマンドを次のように使用できます:

echo “greetings” | tee -a myfile1.txt myfile2.txt myfile3.txt

このコマンドを使うもう一つの利点は、管理者権限を使用して他のユーザーが所有するファイルを編集できることです。

echo “This is a test file” | sudo tee -a myfile1.txt

printfコマンドの使用

上記の方法では、ユーザーがデータに書式を追加する自由がないため、データに特定の書式を追加したい場合は、printfを次のように使用できます。

printf “Greetings from linux-console \nThis is a test file.\n” >> myfile1.txt

ヒアドキを使用する

bashでファイルを書く別の方法は、ヒアドキュメント形式を使用することです。これはコマンドのようなものではなく、複数の行のデータを書くために従うことができる形式に近いものです。以下がヒアドキュメントの形式です:

cat << [delimiter]

data…………

[delimiter]

ここでの構文では、catはデータを読み込むために使用され、区切り文字はデータの一種の境界です。それは文字列やファイル名である可能性があります。通常の実践では、通常ENDまたはEOFが区切り文字として使用されますが、これはすべてユーザーの好みに依存します。

例えば、私は .sh ファイルを作成し、heredoc の形式を次のように使用しました:

#! /bin/bash

cat << MYFILE

Greetings From Linuxhint

This is a test file created using heredoc

MYFILE

データが正しく保存されているか確認するために、次のコマンドでこのファイルを実行しましょう:

bash mybashscript.sh

結論

Linuxシステムでbashスクリプティングを行いながらファイルを書き込むのは、Linuxコマンドの使い方に関する十分な知識がないと難しい作業です。このガイドでは、bashスクリプティング中にファイルを書き込むための4つの方法を紹介します。これらは方向演算子、teeコマンド、printf、およびheredocを使用する方法です。