0

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

ls \
/tmp

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

ls \
/tmp

代替

ls \

?

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

谢谢!

4

2 回答 2

1

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

$ grep -A1 ls test.sh
ls \
/tmp
于 2012-10-05T17:40:13.440 回答
1

假设您想将 final\视为行继续字符,您可以使用awk来连接行:

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

这将删除行继续字符并将所有内容合并为一行,然后如果 if 匹配 regex 则打印该行ls

于 2012-10-05T17:50:17.250 回答