[英]How to grep strings that contain a query string with any 2 characters in the beginning “xxTHISISMYSTRING” from a file?
我有一个以下格式的多行文件:
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈来
我想找到所有包含“ aaaa”主题以及其前面两个字母的字符串。
我如何找出字符串: hhaaaa,oaaaaa,hbaaaa,fbaaaa ? 以“ aaaa ”作为输入。
要匹配正则表达式中的任何字符,请使用.
:
$ grep -o ..aaaa file
hhaaaa
hoaaaa
hbaaaa
fbaaaa
-o
选项告诉grep仅打印匹配项,而不打印匹配项的上下文。
要将匹配限制为字母字符,请使用字母类:
$ grep -Eo '[[:alpha:]]{2}aaaa' file
hhaaaa
hoaaaa
hbaaaa
fbaaaa
[[:alpha:]]
匹配任何字母字符。 与AZ
不同,这是Unicode安全的。 {2}
表示两个这样的字符。 为了避免反斜杠,我们添加了-E
标志以打开扩展的正则表达式。
grep -oh "..aaaa" file.txt
会做。
-h,--no-文件名
在输出中禁止文件名的前缀。 这是默认值
仅搜索一个文件(或仅标准输入)时。
-o,--only-matching
仅打印匹配行的匹配(非空)部分,
每个这样的部分都放在单独的输出线上。
grep -o '..aaaa' file
应该这样做。 如果目标是计算总匹配数,则执行以下操作:
grep -o '..aaaa' file | wc -l
GREP手册页说:
-o,--only-matching
仅打印匹配行的匹配(非空)部分,每个这样的部分都在单独的输出行上。
WC手册页说:
-l,-行
打印换行计数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.