Решение sed
см. ниже в этом ответе.
Предположим, что узлы a
являются частью правильно сформированного XML-документа и что вы хотите добавить .xhtml
к значению их тегов href
, когда существующие значения начинаются с /entry/
:
.
xml ed -u '//a[starts-with(@href, "/entry/")]/@href' \
-x 'concat(../@href,".xhtml")' file.xml >file-new.xml
При этом используется XMLStarlet (, который иногда устанавливается как xmlstarlet
вместо просто xml
), и он находит соответствующие узлы a
и добавляет .xhtml
к их атрибутам href
независимо от того, где в документе они происходят.
Здесь результат сохраняется в новый файл, но вы можете использовать xml ed --inplace...
для редактирования файла на месте, как только убедитесь, что он работает.
Тестирование:
$ cat file.xml
$ xml ed -u '//a[starts-with(@href, "/entry/")]/@href' -x 'concat(../@href,".xhtml")' file.xml
Использование sed
(, которое вы бы не использовали в правильно сформированном файле XML,):
sed 's|
Это соответствует строке (, это будет имя файла ). Затем вся эта совпадающая часть заменяется самой собой и строкой
.xhtml
.
С помощью sed -i
это сделает модификацию на месте.
Тестирование (на том же файле, что и выше):
$ sed 's|
Есть несколько способов сделать это. Вот два:
Занести в черный список модуль, соответствующий драйверу вашей карты Wi-Fi. (см. этот документ . Обычно это делается путем создания файла в /etc/modprobe.d, содержимое которого находится в «черном списке» )
Отредактируйте dhcpcd
файл конфигурации, чтобы запретить сетевую карту Wi-Fi (см. man 5 dhcpcd.conf)