Intereting Posts
Почему я получаю сообщение об ошибке: «Плохая запись» en_US »при генерации локалей? Значки не отображаются рядом с настраиваемыми категориями в главном меню Разрешение DNS через HTTP / HTTPS Отключение монитора, когда он выключен / находится в режиме ожидания в настройке нескольких мониторов Проблемы с доступом к файлам на mp3-плеере Sansa Clip Почему useradd показывает ошибку отказа от разрешения Как разобрать этот вывод и поместить его в массив? zsh: отключить «файл существует:» предупреждение с перенаправлением Что происходит, когда USB-накопитель подключен? Расширение имени файла для сценария ожидания в bash Как помнить метаданные местоположения окна (всегда в видимой рабочей области) Не удается разрешить сервер CentOS 6.2 по имени из OS X Не удается войти на сервер с SSH из-за скрипта в файле /etc/profile.d, выходящего с статусом выхода 1 Зачем мне читать с ленты 3 раза, чтобы читать 2 архива? Трубопроводы, рабочие места и процессы в Zsh

Использование sed для консолидации разностного вывода

У меня есть этот результат в результате сравнения файлов с diff :

 < IF-Name :STRING: "lns-wall-01-t2" Index:Gge32: 260 --- > IF-Name :STRING: "lns-wall-01-t2" Index:Gge32: 25 

Мне нужен этот вывод:

 lns-wall-01-t2 old:260 new:25 

Я хочу использовать sed.

С awk :

 awk ' /^</ { old = $NF } /^>/ { str = $4 ; gsub(/"/,"",str) ; printf "%s old:%s new:%s\n", str, old, $NF } ' your_files_list_here 
 sed ' /^</{ # first line formatting s/^.*"\(.*\)".*: /\1 old:/ # append next 2 lines N N # exchange from 2nd line begining till last ":" by "new" s/\n---.*: / new:/ }' "$Rep_Scripts"/diff.txt 

используйте другой тип выходного сигнала:

 diff -y --suppress-common-lines f1 f2 

который дает вам более удобный для пользователя формат:

 F-Name :STRING: "lns-wall-01-t2" Index:Gge32: 260 |IF-Name :STRING: "lns-wall-01-t2" Index:Gge32: 25 

а также

 diff -y ........ | perl -nE '/"(.*?)".*?32:\s*(\d+).*32:\s*(\d+)/ and say "$1 old:$2 new:$3"'