Intereting Posts
Kdevelop над SSHFS иногда заикается последние несколько строк при сохранении? Разрешения на крепления CIFS Доступ к Time Capsule Drive из SSH? На каком уровне (IP / TCP?) Работает netcat / socat? Уведомления SSH для внешних IP-адресов Рекомендации по резервному копированию ZFS с другим сервером Почему я не могу создать файл сценария из .xsessionrc? Почему использование `yes` на bash-конвейерах * не * вызывает бесконечные циклы? Как мне узнать, что такое моя модель и модель моего компьютера? Использование нескольких независимых экземпляров Thunderbird Почему эта команда не сортируется на основе индекса uniq? Отключить клавиатуру и мышь временно Распечатайте все между двумя шаблонами, затем удалите первую и последнюю строку результирующего вывода Что происходит с локальным трафиком локальной сети на Linux-адресе без обратной связи? Как узнать, есть ли я в тюрьме, контейнере, снимке и т. Д. Окружении?

Как удалить содержимое перед шаблоном в XML с помощью Unix

Source file example:  

(Файл XML создан в одну строку)

ИЛИ ЖЕ

 Source file example:       

Мне нужно удалить все содержимое файла до в обоих исходных форматах. Я пытался использовать метод ниже

 sed 's/^.*b/b/' 

Но это не заменит его. Пожалуйста, дайте мне знать, если есть альтернативный способ.

Предполагая, что ваш XML-документ правильно сформирован, как

         

Затем вы можете использовать XMLStarlet для удаления всех тегов HDR следующим образом:

 xmlstarlet ed -d '//HDR' file.xml >newfile.xml 

Чтобы удалить только tags HDR , за которыми сразу следует тег b :

 xmlstarlet ed -d '//HDR[following-sibling::*[1][name() = "b"]]' file.xml >newfile.xml 

XMLStarlet также может быть использован для изменения содержимого тегов:

 $ xmlstarlet ed -u '//HDR[following-sibling::*[1][name() = "b"]]' -v 'New header value' file.xml   New header value    $ xmlstarlet ed -i '//HDR[following-sibling::*[1][name() = "b"]]' -t attr -n 'new_attribute' -v 'hello' file.xml       

Тип 1 :

  echo "" | sed 's/^.*//'  
  • заменит все до на

Тип 2 :

 sed -n '//,$p' file     
  • напечатает первое вхождение в конец файла ($).

Вопрос:

удалить все содержимое файла до

Ответ:

 perl -0777 -lape 's/^.*//s' 

Тестовый забег:

 ==> in1.txt <==  ==> in2.txt <==       $ perl -i -0777 -lape 's/^.*//s' in{1,2}.txt ==> in1.txt <==  ==> in2.txt <==