awk -F"[>,)]" '{gsub(/.*ID /,"",$6);gsub(/Addr.*/,"",$7);print $2,$3,$6,$7 }' file
По сути, он устанавливает разделители полей на 3 типа символов: >
, ,
и )
.тогда $ 2, $ 3, $ 6, $ 7 будут содержать то, что вы хотите, но с некоторыми посторонними строками.Поэтому мы используем gsub()
, чтобы заботиться о них.
@ OP, извините, я не могу объяснить больше.Лучше всего, если вы попробуете это в командной строке.Начните с основ,
awk -F"[>,)]" '{print $2,$3,$6,$7 }' file
распечатайте каждое поле и посмотрите, что произойдет.затем вставьте обратно операторы gsub () один за другим и посмотрите, что произойдет.