我正在 Unix 计算机上运行我的程序。它有 300 个循环。每次循环都会生成4个文件,分别调用1.txt、2.txt、3.txt、4.txt。在下一个循环中,新文件将覆盖旧文件。现在我希望这些文件恰好位于循环 1、循环 50、循环 100 等位置。但我不能整天坐着等待观看正在运行的程序。当这些 .txt 文件出现在运行目录中时,是否有任何脚本可以完成工作,将其重命名为循环计数器(第一个循环的 1.txt 文件将是 1_1.txt,第二个循环的 1.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 的文件