Уважаемые коллеги.
Уже третий день сижу с задачей:
Есть файл вида:
[id]
id= 0x03b00063
...
...
[id]
id= 0x03m00063
....
....
[id]
id= 0x01f00063
...
...
[option]
необходимо
после строки удовлетворяющей условию id= 0x03b0* писалась новая строка с параметром force= on
Я уже написал обработку выводящую в массив то, что мне необходимо. Но когда я добавляю этот массив в sed просто ничего не происходит возможно я некорректно обрабатываю переменную.#!/bin/bash
a=`sed '2!d' 1 | awk '{ print $NF }' | head -c 6`
file="/tmp/1"
sed -i '/forcereal/d' $file
b=(`grep "^id= $a" $file | awk '{print $2}'`)
for i in "${b[@]}"
do
c="id= "$i""
echo $c
sed '/"$c"/a \forcereal= on' $file > /tmp/dellme.tmp
done
cat /tmp/dellme.tmp > $file
rm -f /tmp/dellme.tmp
echo "Ok"
exit 0
Выше echo $c пишет всё что мне надо, т.е. массив тот, который нужен:
id= 0x03b00063
id= 0x03b00069
.....
Остался вопрос конкретно по sed параметр $c я уже пробовал и так "${c[*]}" и с такими '' и с такими ""... В общем помогите пожалуйста.