匹配之前和之后的Grep字符?
使用这个:
grep -A1 -B1 "test_pattern" file
将在文件中的匹配模式之前和之后产生一行。 有没有办法显示行,但显示指定数量的字符?
我的文件中的行很大,所以我不打算打印整行,而只是观察上下文中的匹配。 有关如何做到这一点的任何建议?
之前3个字符和之后4个字符
$> echo "some123_string_and_another" | grep -o -P '.{0,3}string.{0,4}'
23_string_and
grep -E -o ".{0,5}test_pattern.{0,5}" test.txt
这将在您的模式前后匹配最多5个字符。 -o开关告诉grep只显示匹配,-E使用扩展正则表达式。 确保将引号放在表达式中,否则它可能会被shell解释。
你可以使用
awk '/test_pattern/ {
match($0, /test_pattern/); print substr($0, RSTART - 10, RLENGTH + 20);
}' file
链接地址: http://www.djcxy.com/p/19647.html