forループにコマンド出力を追加する

forループにコマンド出力を追加する

私はいくつかの入力ファイルを処理し、ファイルとして出力を取得するために単純なforループを使用しています。私が使うものは

for k in ../some_directory/*.txt; 
    do command (containing -i $k -o outputfile.txt); 
done

各ループは出力を提供します。出力をファイルに記録したい。このループは古いファイルをすべて置き換え、各ループの出力を含む複数のoutputfile.txtファイルを提供します。ファイルにコマンドを追加するには?画面出力ではなく、各コマンドの出力が必要です。

注:私はそれについて話していませんこれまたはこれ

ベストアンサー1

希望の結果を得るには2つのオプションがあります。

for k in /path/to/*.txt; do
    some_command -i "$k" >> /path/to/output.txt
done

または

for k in /path/to/*.txt; do
    some_command -i "$k"
done >> /path/to/output.txt

プログラムが標準出力に書き込まない場合ただ指定されたファイルに書き込むには、-o次のようにします。

for k in /path/to/*.txt; do
    some_command -i "$k" -o /tmp/output.txt
    cat /tmp/output.txt >> /path/to/real_output.txt
done
rm /tmp/output.txt

おすすめ記事