заменяя некоторый текст квадратными скобками в bash

У меня есть эта строка, которую я получаю от запуска jack_lsp .

 a2j:Arturia BeatStep [28] (capture): Arturia BeatStep MIDI 1 

в xml-файле я сохраняю состояние соединений из предыдущего сеанса подключения.

 <connection> <output>a2j:Arturia BeatStep [20] (capture): Arturia BeatStep MIDI 1</output> <input>starmaze:midi_to_slave_1</input> </connection> 

Возможно, вы заметили, что между предыдущим сеансом (сохраненным в файле xml) и текущим сеансом значение в [] (квадратные скобки) было изменено. asu такой я пытаюсь обновить значение в файле всякий раз, когда я хочу его загрузить.

Для этого у меня есть следующий фрагмент bash:

 ARTURIA_CHAN=$( jack_lsp | grep Arturia | grep capture | sed -e 's/^.*\[\(.*\)\].*$/\1/' ) ARTURIA_XMLCHAN=$( cat "${ofname}" | grep Arturia | grep capture | sed -e 's/^.*\[\(.*\)\].*$/\1/' ) if [ "${ARTURIA_CHAN}" != "${ARTURIA_XMLCHAN}" ]; then sed -e "s/\[$ARTURIA_XMLCHAN\]/\[$ARTURIA_CHAN\]/g" -i.bak1-art "${ofname}" echo "changing arturia from ${ARTURIA_XMLCHAN} to ${ARTURIA_CHAN}" fi 

ofname – это «имя выходного файла», и это в основном файл xml.

Кажется, что переменные 2 получают ожидаемые значения (что находится внутри [] ), но операция sed либо работает неправильно, либо не сохраняет файл в конце. Я не могу понять, что это правда. Возможно, это более очевидно для вас?

Спасибо.

Interesting Posts

Программное обеспечение для мониторинга сервера Linux

Я не могу понять, как расширить мой домашний раздел Arch на свободное место

Udev: переименование моего сетевого интерфейса

Как создать rootfs для пользовательского режима Linux на Fedora 18?

Msgstr "предупреждение: Файловая система` ext2 'не поддерживает встраивание. "Но моя система тоже не встроена, почему попытка grub?

есть способ подключения SAMBA и miniDLNA

mdadm.conf: устройства UUID, повторно подключаемый к другому кабелю, например

Как я могу отслеживать длину очереди приема?

Ubuntu 12.10 не распознает мои активные окна 7 разделов

Как изменить размер файлов изображений ext3

Как заменить все вхождения в файле уникальным значением для каждого события

Как изменить раскладку клавиатуры в gnome 3 из командной строки

Как проверить, является ли моя AIX PPC или PPC64?

Как преобразовать эти данные в читаемый человеком формат

Где символы, введенные в терминал, сохранены?

Linux и Unix - лучшая ОС в мире.