Вы хотите добавить ваш текущий массив. Для этого выполните
declare -a array
для объявления вашего массива и
array+=("$line")
, чтобы добавить элемент в ваш массив.
In the context where an assignment statement is assigning a value to a shell variable or array index (see Arrays), the ‘+=’ operator can be used to append to or add to the variable's previous value.
Попробуйте это,
while IFS= read -r line; do
NAME="`echo "$line" | awk '{$1=""; print}'`"
sed "s#^<eName>Licensed Original.*</eName>#<eName>Licensed Original$NAME</eName>#;s#^<eName>Licensed Reversal.*</eName>#<eName>Licensed Reversal$NAME</eName>#" LO.xml >> LR.xml
done < input.txt
Как вам это решение?:
sed -i -E -e "s/(Original|Reversal).*</\1$(sed '1q;d' file.txt)</" -e 's/C[0-9]*//' file.xml
text="$(cat foo)" && echo "$text" \
| sed -E -e "s/(Original|Reversal).*</\1$(sed '2q;d' file.txt)</" -e 's/C[0-9]*//' >> file.xml
Найдите шаблон Origina|Reversal
до <
sed -i -E -e "s/(Original|Reversal).*</
Заменить первой строкойfile.txt
/\1$(sed '1q;d' file.txt)</" -e 's/C[0-9]*//' file.xml
Скопируйте содержимое файла xml и повторите операцию, на этот раз со второй строкой file.txt
и добавьте вывод в файл xml
text="$(cat foo)" && echo "$text" \
| sed -E -e "s/(Original|Reversal).*</\1$(sed '2q;d' file.txt)</" -e 's/C[0-9]*//' >> file.xml