使用以下命令:
grep -A1 -B1 "test_pattern" file
将在文件中匹配的模式之前和之后生成一行。有没有一种方法可以不显示行而显示指定数量的字符?
我的文件中的行非常大,所以我对打印整行不感兴趣,而只是观察上下文中的匹配。对如何做到这一点有什么建议吗?
发布于 2011-11-12 09:19:51
前3个字符,后4个字符
$> echo "some123_string_and_another" | grep -o -P '.{0,3}string.{0,4}'
23_string_and
发布于 2011-11-12 09:26:23
grep -E -o ".{0,5}test_pattern.{0,5}" test.txt
这将在您的模式之前和之后匹配最多5个字符。-o开关告诉grep仅显示匹配,并告诉-E使用扩展正则表达式。确保用引号将表达式括起来,否则它可能会被shell解释。
发布于 2011-11-12 09:17:54
你可以使用
awk '/test_pattern/ {
match($0, /test_pattern/); print substr($0, RSTART - 10, RLENGTH + 20);
}' file
https://stackoverflow.com/questions/8101701
复制相似问题