私はUnixコンピュータでプログラムを実行しています。 300サイクルを持っています。各サイクルは、それぞれ1.txt、2.txt、3.txt、および4.txtを呼び出す4つのファイルを生成します。次のループでは、新しいファイルが古いファイルを上書きします。さて、ファイルが正確にループ1、ループ50、ループ100などにあることを望みます。しかし、一日中座ってプログラムの実行を見ることはできません。これらの.txtファイルが実行ディレクトリに表示されたときにループカウンタに名前を変更するタスクを実行するスクリプトがあります(最初のループの1.txtファイルは1_1.txtで、2番目のループの1.txtファイルです).txtファイルは2_1.txtになり、すぐに...)
答え1
これを行う方法はいくつかあります。どちらが最もうまく機能するかは、スクリプトの仕組みによって異なります。少なくともスクリプトやスニペットを含めるように質問を編集できる場合は、状況に応じたより正確な回答を反映するように編集します。
以下は、300回実行されるforループの例です。
for i in {1..300}; do
echo "test$i" > 1.txt
echo "test$i" > 2.txt
echo "test$i" > 3.txt
echo "test$i" > 4.txt
done
現時点では、前述のスクリプトのように、1-4.txtは各ループを上書きします。
簡単な解決策は次のとおりです。
count=1
for i in {1..300}; do
echo "test$i" > ${count}_1.txt
echo "test$i" > ${count}_2.txt
echo "test$i" > ${count}_3.txt
echo "test$i" > ${count}_4.txt
((count++))
done
これは、1_1.txtから300_1.txtまでのファイルがあることを意味します。