如何在运行具有多个循环的程序时自动更改循环中出现的新文件的名称

如何在运行具有多个循环的程序时自动更改循环中出现的新文件的名称

我正在 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 的文件

相关内容