Сложно дать подсказку, если не сделает это за вас . Но если предположить, что ваши реальные потребности более сложны, чем вы описываете, то, возможно, какое-то обучение может произойти при применении этого ответа.
Grep не настолько мощен, чтобы выполнять работу, которую вы описываете, хотя он может быть полезен в виде линии для выбора данных с большей «зернистостью». Если ваш файл имеет один тег на строку, как показано в примере, вы можете использовать grep для фильтрации только тегов Instance
или work
.
grep Instance | program to extract id val
или
grep work| program to extract id val
Чтобы извлечь значение, вам нужно нечто более мощное, чем grep. Предполагая, что значение заключено в двойные кавычки и не содержит вложенных кавычек; и что нет атрибутов с одинаковыми именами, которые могли бы запутать выражение, эта магия sed должна помочь.
sed 's/.*id="\([^"]*\)".*/\1/'
Если любое из вышеприведенных предположений неверно, выражение должно быть более сложным.