bashでファイルを読み書きする方法は複数あります。最も簡単な方法は、演算子>と>>を使用することです。
- >演算子は既存のデータを上書きします
- >>演算子はデータを追加します
リダイレクト演算子を使用する一般的な形式は次のとおりです。
データ>ファイル名
データ>>ファイル名
例を使用して、ファイルへの書き込み手順を理解しましょう。
リダイレクト演算子を使用してファイルを書き込む方法
上で説明したように、ファイルに書き込むための単純で直接的なアプローチは、リダイレクト演算子を使用することです。たとえば、既存のファイルのテキストを変更する場合は、最初に次の名前のテキストファイルを作成します。 testfile.txt それに何かを書いてください:
テキストファイルを保存します。
ターミナルで以下のコマンドを入力します。
$ echoファイル内の既存のテキストを上書きする> testfile.txt
絞りすぎると危険な場合があります。したがって、noclobberを有効にすることをお勧めします。 noclobberを設定すると、既存のファイルへの上書きがブロックされます。
$ set –o noclobber$ echoファイル内の既存のテキストを上書きする> testfile.txt
ただし、noclobberをバイパスする場合は、 > | の代わりに演算子 >> :
$ echoファイル内の既存のテキストを上書きする> | testfile.txtまたは、単にnoclobberを無効にすることもできます。
$ set +またはnoclobber
ただし、このコマンドはすべてのファイルから保護を取り除きます。
上記の出力は、既存のテキストが上書きされたことを示しています。それでは、 >> オペレーター:
$ echo既存のテキストファイルにテキストを追加する>> testfile.txt
捨てた これを使用してテキストをフォーマットすることはできないため、常に理想的な使用とは限りません。したがって、次のコマンドに示すように、echoの代わりにprintfを使用してテキストをフォーマットします。
$ printfようこそ nこれは新しいテキストファイルです。 > newtestfile.txt
bashスクリプトの例で概念を理解しましょう。ターミナルでvimと入力してVimを開きます。デバイスにVimエディターがない場合は、次を使用してインストールします。
$ sudo apt install vimスクリプトを入力します。
#! / bin / bashエコーあなたの名前を入力してください
名前を読む
echo $ name> data_dir.txt
エコーあなたの年齢を入力してください
年齢を読む
エコー$ age >> data_dir.txt
cat data_dir.txt
NS 猫 コマンドは、ファイルを作成および編集するために使用されます。を押した後にモードを切り替えて、上記のスクリプトをVimに保存します NS キーを押してから入力します :myscript.sh内 。ターミナルを開き、コードを実行します。
ヒアドキュメントを使用してファイルを書き込む方法
複数行を記述したい場合、最も簡単な方法はヒアドキュメントを使用することです。ヒアドキュメントとも呼ばれるヒアドキュメントは、多目的コードブロックです。ヒアドキュメントの構文は次のとおりです。
指示<<[-] Delimiter。
テキスト/コマンド
。
デリミタ
区切り文字の代わりに任意の文字列を使用できます。また、-を使用してファイル内のタブスペースを削除することもできます。簡単な例を使用して理解しましょう。
#! / bin / bash猫<< TEXTFILE
これはテキストファイルです。
このファイルはヒアドキュメントを使用して作成されます。
テキストファイル
上記のscriptcatコマンドは、TEXTFILEという名前のテキストファイルを作成し、作成したファイルにテキストを書き込みます。次に、ファイルを次の名前で保存します。 myscript.sh 。ターミナルを起動し、スクリプトを実行します。
Teeコマンドを使用してファイルを書き込む方法
ファイルを書き込む別の方法は、Teeコマンドを使用することです。このコマンドが入力を受け取り、ファイルに書き込み、同時に出力を表示することを示す名前として。デフォルトでは、Teeコマンドは既存のデータを上書きします。
$ echoこれはいくつかのテキストです| tee textfile.txt
使用法を追加するには–a:
$ echoこれは別のテキストです| tee –textfile.txt
複数行を書き込むには、次を使用します。
$ echo複数のファイルにテキストを追加する| tee textfile1.txt textfile2.txt textfile3.txt
上記のコマンドは、ファイルが存在しない場合は3つのファイルを作成し、それぞれにテキストを書き込みます。
結論
このガイドでは、例を挙げてbashでファイルに書き込むための複数のアプローチに焦点を当てています。 bashスクリプトでは、ファイルを書き込む方法は複数ありますが、最も簡単な方法は、リダイレクト演算子>、>>を使用することです。複数行を書き込むには、ヒアドキュメントを使用できます。同じデータを複数行に書き込みたい場合は、teeコマンドが非常に便利です。