如何创建一堆每个文件正文中具有不同参数的文件?

如何创建一堆每个文件正文中具有不同参数的文件?

所以,比如说,我想创建一堆这样命名的文件(其中我有一个原始文件“albedo10solar100”,里面有文本),我将反照率从 10 更改为 60,步长为 10,日照率从 90 更改为 100,步长为 10。共 5 个:

  • 反照率10solar100.m
  • 反照率10solar95.m
  • 反照率10solar90.m
  • ...
  • 反照率20solar100.m
  • 反照率30solar100.m

我想我必须先在 albedo10solar100 上多次使用 cat 命令,所以我首先需要一些可以 cat albedo10solar100 > albedo{$m}solar{$n} 的 shell 脚本。

但是,如果我想在 albedo10solar100 的主体中批量替换 100 的每个实例为 95 呢?对于每个附加文件等等?

答案1

整个脚本将类似于创建和替换正文中的数字:

for i in $(seq 10 10 60)
do
    for j in 90 95 100
    do
        sed "s/100/$j/g" albedo10solar100.m_orig > "albedo${i}solar${j}.m"
    done
done

您需要albedo10solar100.m_orig之前创建,因为如果您使用albedo10solar100.m它,它将被空文件重写。

答案2

您可以使用sed

sed 's/100/95/g' albedo10solar100.m > albedo10solar95.m

当然,您可以用另一个正则表达式替换“100”和/或“95”以获得更好的模式匹配

相关内容