>Здравствуйте!
>Есть файл, следующего содержания:
>
>#comment1
>#comment2
>var1:varvalue1
>var2:varvalue2
>#comment3
>var3:varvalue3
>
>Нужно из shell-скрипта изменить значения всех varvalue, не изменяя всего остального. Как
>это сделать наиболее правильно? Вот вам пример такого скрипта:
==========================================
#!/usr/local/bin/bash
COMMAND="`which sed`"
FILE=$1; shift
for arg in "$@"
do
var=`echo $1 | cut -d '=' -f 1`
value=`echo $1 | cut -d '=' -f 2`
COMMAND="${COMMAND} -e 's/$var:.*/$var:$value/g'"
shift
done
eval "$COMMAND $FILE > /tmp/tmpfile"
mv -f /tmp/tmpfile $FILE
==========================================
Запускается так: "script.sh <file> variable=value ..."
Пример использования:
$ cat /tmp/file
#comment1
#comment2
var1:varvalue1
var2:varvalue2
#comment3
var3:varvalue3
$ ./script.sh /tmp/file var1=newvalue1 var2=newvalue2
$ cat /tmp/file
#comment1
#comment2
var1:newvalue1
var2:newvalue2
#comment3
var3:varvalue3
P. S. Ну, а уж дальнейшую доработку скрипта оставляю вам. В качестве, так сказать,
домашнего задания. :-)