I want to grep lines starting with a @ and also lines starting with // followed by a line starting with @
Example:
//text1
@text2
text3
result:
//text1
@text2
How can I do this with grep or any other basic unix tool?
I want to grep lines starting with a @ and also lines starting with // followed by a line starting with @
Example:
//text1
@text2
text3
result:
//text1
@text2
How can I do this with grep or any other basic unix tool?
perl -ne 'print( $z . $_ ) if m{^\@}; $z=(m{^//} ? $_ : "");'
This one-liner processes STDIN one line at a time.
If a line beginning with @ is found it dumps the contents of $z followed by the current line.
Then, if it detects a line beginning with // it saves the line in a variable $z. The $z variable is cleared if the line does not start with //.
I have given this a quick test and should do the job requested.
The grep tool does not remember state between lines.