Как может я grep эти строки

Я хочу к grep строкам, запускающимся с a @ и также строки, запускающиеся с // сопровождаемый строкой, запускающейся с @

Пример:

//text1
@text2
text3

результат:

//text1
@text2

Как я могу сделать это с grep или каким-либо другим основным инструментом Unix?

1
задан picknick 21 June 2010 в 13:12
поделиться

1 ответ

perl -ne 'print( $z . $_ ) if m{^\@}; $z=(m{^//} ? $_ : "");'

Этот однострочник обрабатывает STDIN по одной строке за раз.

Если будет найдена строка, начинающаяся с @ , будет выгружено содержимое $ z , за которым следует текущая строка.

Затем, если он обнаруживает строку, начинающуюся с // , он сохраняет строку в переменной $ z . Переменная $ z очищается, если строка не начинается с // .

Я провел быструю проверку и должен выполнить требуемую работу.

Инструмент grep не запоминает состояние между строками.

2
ответ дан 2 September 2019 в 23:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: