Grep输出模式

时间:2012-10-05 17:36:08

标签: grep

如果我有一个包含以下内容的bash文件:

ls \
/tmp

有没有办法grep这个文件并获得

ls \
/tmp

而不是

ls \

请注意,如果输入是一个大文件并且有其他匹配模式,grep的其他行为应保持相同。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用上下文选项,-A(后面的行),-B(之前的行)和-C(行上下文,前后和后):

$ grep -A1 ls test.sh
ls \
/tmp

答案 1 :(得分:1)

假设您希望将最终\视为续行符,可以使用awk来连接这些行:

awk '{ while( sub( "\\\\$", "" )) { getline n; $0 = $0 n; }} /ls/' input-file

这将删除行继续符并将所有内容组合成一行,然后打印该行(如果匹配正则表达式ls