所以,比如说,我想创建一堆这样命名的文件(其中我有一个原始文件“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”以获得更好的模式匹配