2009-11-22 9 views

ответ

7

Это не чисто баш, но если у вас есть другие инструменты, консольные, попробовать что-то вроде

cat your_file | sed "s/default_color\ .*/default_color\ $VAR/" 
+6

Почему вы кошка? Просто успокойся. – ustun

+0

он работает! спасибо Я просто использую «sed» s/default_color \. */default_color \ $ VAR/"file> newfile" –

+1

Вам не нужно перенаправление, если вы хотите изменить файл; используйте для этого ключ -i. – ustun

0

Вы можете использовать AWK. Ручной ввод здесь:

http://ss64.com/bash/awk.html

Я не буду писать регулярное выражение необходимо, так как это будет зависеть от вашего формата цвета, но это будет соответствовать требованиям. Удачи.

0

использования поглазеть

awk '$2=="defaultcolor"{$2="anothercolor"}1' file 

или просто Баш оболочки и никаких внешних команд

while read -r line 
do 
case "$line" in 
    *defaultcolor*) line=${line/defaultcolor/anothercolor} 
esac 
echo $line 
done <"file" 
-1

Не совсем Баш решение, но вы можете сделать замену на месте, для любого количества файлов, с perl:

 
perl -i -npe 's/default_color acolor/default_color another_color/' list_of_files