for num in {1..5}
do
perl simulate.pl file.txt file2.txt > output.txt
done
しかし、私の出力は毎回上書きされます。私は彼らが私にはわからないこれに対する簡単な答えの一種でなければならないことを知っている。シェルループで同じファイルに書き込む
for num in {1..5}
do
perl simulate.pl file.txt file2.txt > output.txt
done
しかし、私の出力は毎回上書きされます。私は彼らが私にはわからないこれに対する簡単な答えの一種でなければならないことを知っている。シェルループで同じファイルに書き込む
ファイルに内容をCONCATする>>
を使用してください。 >
は、ファイルに書き込むたびにファイルを上書きします。
各書き込みで '>>'を使うと、 'perl'コマンドが実行されるたびに出力ファイルを再オープンするので、複数の実行を同じファイルにまとめます。*と*は不必要に非効率です。ループの全期間にわたって出力ファイルを開きます。 –
各繰り返しで追加するか、最後に上書きします。
> output.txt
for num in {1..5}
do
perl simulate.pl file.txt file2.txt >> output.txt
done
for num in {1..5}
do
perl simulate.pl file.txt file2.txt
done > output.txt
それは私のために働いた – Anvesh
ワンビッグリダイレクションのアプローチは、より良いものです(ファイルを繰り返し再オープンするのを避ける)。 'perl'と同じくらい重いものをやっているときには大きな問題ではありませんが、' echo 'のような方法でこれを使っている人は多いです。そのシナリオでは、リダイレクションを設定するのに必要な時間は、実際には、「エコー」全体に必要な時間に比べて実質的に大きくなります。 –
'>' - 演算子 - 上書きします。 '' '' - operator - append –