如果我有一个包含以下内容的bash文件:
ls \
/tmp
有没有办法grep这个文件并获得
ls \
/tmp
而不是
ls \
?
请注意,如果输入是一个大文件并且有其他匹配模式,grep的其他行为应保持相同。
谢谢!
答案 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
。