Как я могу получить эти строки? - PullRequest
1 голос
/ 21 июня 2010

Я хочу получить строки, начинающиеся с @, а также строки, начинающиеся с //, за которыми следует строка, начинающаяся с @

Пример:

//text1
@text2
text3

результат:

//text1
@text2

Как я могу сделать это с помощью grep или любого другого базового инструмента Unix?

1 Ответ

2 голосов
/ 21 июня 2010
perl -ne 'print( $z . $_ ) if m{^\@}; $z=(m{^//} ? $_ : "");'

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

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

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

Я провел этот быстрый тест и должен выполнить запрошенную работу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...