コマンドの結果をファイルに保存したいです。

コマンドの結果をファイルに保存したいです。

私はソースコードを分析するためにcppcheckツールを使用しています。

gccコンパイラのシェルプロンプトで次のコマンドを発行しました。

$ cppcheck abc.cpp  

出力は次のとおりです

checking abc.cpp...   
(error) Possible null pointer dereference: <var> - otherwise it is redundant to check if   <var> is null at line 100    
segmentation fault

この出力をファイルとして保存したいので、以下のようにコマンドを発行しました。

$ cppcheck abc.cpp 2> abc.txt

しかし、abc.txtファイルの内容は次のとおりです。

checking abc.cpp...  

最初の行だけを保存し、abc.txtファイルに主要なエラー部分がありません。

ファイルのすべての出力行を取得するには、どのコマンドを使用する必要がありますか? cppcheckのツールマニュアルは次のとおりです。ここ

答え1

2コマンドから削除され、>リダイレクト演算子としてのみ使用されます。

を使用すると、2>エラーストリーム(STDERR)をファイルにリダイレクトできます。必要なのは、通常の出力ストリーム(STDOUT)のようです。

cppcheck abc.cpp > abc.txt

欲しいなら両方ファイルにアクセスするには、次のように2(エラーストリーム)を1(標準出力ストリーム)にリンクします。

cppcheck abc.cpp > abc.txt 2>&1

または使用提案されたショートカット構文すべてをつかむ

答え2

stdoutとstderrをファイルにリダイレクトする必要があるかもしれません。

cppcheck abc.cpp  &>abc.txt

答え3

ケイロップが正しかった>使用については、teeファイルに保存しながらログを表示するには、このコマンドを使用することもできます。

cppcheck abc.cpp | tee my.file.txt

また、2>&1 と一緒に使用する必要があります。

cppcheck abc.cpp 2>&1 | tee my.file.txt

関連情報