sed
обрабатывает файл построчно и выполняет данную программу для каждого. Самая простая программа, которая делает то, что вы хотите, это
sed -re '/^ *x *=.*$/!d' file
- "
/^ *x *=.*$/
" выбирает каждую строку, соответствующую шаблону.
- "
!
" отрицает результат.
- "
d
" удаляет строку.
sed
по умолчанию напечатает все строки, если не указано иное. Это эффективно печатает линии, которые соответствуют шаблону.
Один альтернативный способ написать это:
sed -rne '/^ *x *=.*$/p' file
- "
/^ *x *=.*$/
" выбирает каждую строку, соответствующую шаблону.
- "
p
" печатает строку.
Разница в том, что я использовал переключатель "-n
", чтобы отключить автоматическую печать строк, и вместо этого печатать только выбранные строки.
Вы также можете использовать «grep
» для этой задачи:
grep -E '^ *x *=.*$' file