【发布时间】:2012-10-22 18:43:44
【问题描述】:
我对 bash 脚本比较陌生,因为我需要在超级计算机上管理我的模拟。我目前坚持编写脚本来更改我的 pbs 文件中的特定行。
我的问题分为两个阶段。首先,我需要替换文本文件(另一个脚本)中的多行,并覆盖该文件以供以后使用。粗略的想法是:
将
'filename005'的第27、28和29行替换为'text1=000'、'text2=005'和'text3=010'
接下来,我想对一组带有编号后缀的文本文件递归地执行此操作,并且编号会影响替换的文本。
到目前为止我的代码是:
#!/bin/bash
for ((i = 1; i < 10; i++))
do
let NUM=i*5
let OLD=NUM-5
let NOW=NUM
let NEW=NUM+5
let FILE=$(printf "filename%03g" $NUM)
sed "27 c\text1=$OLD" $FILE
sed "28 c\text2=$NOW" $FILE
sed "29 c\text3=$NEW" $FILE
done
我知道我的代码的最后 4 行有一些错误,我仍在研究实现sed 的正确方法。感谢任何提示!
谢谢! 计算机科学
【问题讨论】:
-
一种更可持续的方法可能是让您的脚本从配置文件或一组环境变量中读取其参数。