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

スクリプトの同じ行で stderr と stdout を別のファイルにリダイレクトする方法は?

そのように:

$ command >>output 2>>error

command 2>> error 1>> output に 1 行で追加するだけです

ただし、>> に注意してください。 ファイルに既にデータがある場合に追加するためのものです。一方、> ファイル内の既存のデータを上書きします。

つまり、command 2> error 1> output 追加したくない場合。

念のため、 1> と書くことができます > のように デフォルトのファイル記述子が出力であるためです。だから 1>>

つまり、command 2> error 1> output となり、command 2> error > output


これを試してください:

your_command 2>stderr.log 1>stdout.log

詳細

数字 0 9 まで ファイル記述子 bash.0 で 標準入力の略 1 標準出力の略 2 標準誤差を表します。 3 9 まで 他の一時的な使用のために予備です。

演算子 > を使用して、任意のファイル記述子をファイルまたは別のファイル記述子にリダイレクトできます。 .代わりに演算子 >> を使用できます 空のファイルを作成する代わりに、ファイルに追加します。

使い方:

file_descriptor > filename

file_descriptor > &file_descriptor

Advanced Bash-Scripting Guide:Chapter 20. I/O Redirection を参照してください。


または、出力 (stdout と stderr) を 1 つのファイルに混在させたい場合は、以下を使用できます:

command > merged-output.txt 2>&1

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

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

  3. Linuxで出力をファイルとStdoutにリダイレクトする方法

  1. StderrとStdoutを異なる色で印刷するようにシェルを構成しますか?

  2. Stdoutに出力し、同時にGrepをファイルに出力しますか?

  3. すべての出力を Bash のファイルにリダイレクトします

  1. Linuxスクリプトコマンドを使用してターミナルセッションをキャプチャして出力する方法

  2. プログラムの出力をリダイレクトし、それでもStdoutに送信する方法はありますか?

  3. Linux:ファイルを入力と出力として同時に使用する方法は?