sed заменяет текст между двумя строками - PullRequest
0 голосов
/ 12 июня 2019

Я хочу заменить идентификатор хоста в количестве файлов, и идентификатор хоста отличается в каждом файле, поэтому я должен заменить содержимое между тегами <hostid> и </hostid>, каждый файл имеет только один <hostid> линия

<hostid>71342-231VMKDK-47WW-03dMV6</hostid>

до

 <hostid>xxxx-yyyyy-zzz-uuu-bb</hostid>

Я попробовал что-то вроде ниже, что не сработало

sed -i "" -e :a -e 's/\(hostid>[X]*\)[^X]\(.*<\)/\1\something\</;ta' 

1 Ответ

1 голос
/ 12 июня 2019

Не могли бы вы попробовать следующее.

sed '/hostid/s/>.*</>xxxx-yyyyy-zzz-uuu-b</'  Input_file

Если вы хотите сохранить выходные данные в сам файл Input_file вместе с резервным копированием файла Input_file, то измените sed на sed -i.bak ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...