乐知付加密服务平台

如果你有资源, 平台可以帮你实现内容变现, 无需搭建知识付费服务平台。

点击访问官方网站 https://lezhifu.cc

扫码关注公众号 乐知付加密服务平台-微信公众号
grep命令常用方法总结 | chenzuoli's blog

grep命令常用方法总结

      grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。通常grep有三种版本grep、egrep(等同于grep -E)和fgrep。egrep为扩展的grep,fgrep则为快速grep(固定的字符串来对文本进行搜索,不支持正则表达式的引用但是查询极为快速)。grep是Linux文本处理三剑客之一。

1.正则表达式

1
2
3
4
grep -E 'l\{2,\}' 2.txt
grep -E 'h(ell|a)o' test.txt
grep '[a-z]\{5,\}' test.txt
grep -E '^(h|y)' test.txt //-E支持扩展正则,相当于egrep

2.操作文件

1
2
grep -xf a.txt b.txt  //查询a与b共同存在的行
grep -vxf b.txt a.txt //查询a的行不在b文件中面的,就是a比b多出来的行

3.简单查询

1
2
3
4
grep -v '^h' test.txt //显示非以h开头的
grep -r "hello" xx //在xx文件夹查找hello字符串
grep -c //统计匹配的行数
grep -n //显示行号

4.查询匹配到的上下文

1
2
3
grep -A 1 'hello' test.txt  //除了显示匹配到的行也显示它之后的一行
grep -B 1 'hello' test.txt //除了显示匹配到的行也显示它之前的一行
grep -C 1 'hello' test.txt //除了显示匹配到的行也显示它之前和之后的一行

5.参数解释

[options]主要參数:
-c:仅仅输出匹配行的计数。
-I:不区分大 小写(仅仅适用于单字符)。
-h:查询多文件时不显示文件名称。
-l:查询多文件时仅仅输出包括匹配字符的文件名称。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包括匹配文本的全部行。

6.命令正則表達式

1
2
3
4
5
6
7
8
9
 . 匹配单个字符 如..X  yiX能查出来
^ 匹配行首 ^d 每行第一个字符为d
$ 匹配行尾 T$ 每行最后一个字符为T
* 匹配随意字符串
\ 屏蔽特殊字符的含义
A{2}B 字母A出现两次
A{2,}B 至少出现两次
A{2,4}B 出现2到4次
[0-9]{4}xx[0-9]{4} 前四个是数字,中间是xx,后四个是数字

7.pattern正則表達式主要參数

1
2
3
4
5
6
7
8
9
10
11
12
13
\: 忽略正則表達式中特殊字符的原有含义;
^:匹配正則表達式的開始行;
$: 匹配正則表達式的结束行;
<:从匹配正则表达式的行開始;
锚定单词的開始。如:/\<love/匹配包括以love开头的单词的行;
>:到匹配正則表達式的行结束;
[ ]:单个字符。如[A]即A符合要求;
[ - ]:范围。如[A-Z],即A、B、C一直到Z都符合要求;
.:全部的单个字符;
* :有字符,长度能够为0
[^]: 匹配一个不在指定范围内的字符。如:/[^A-RT-Z]ed/匹配不包括A-R和T-Z的一个字母开头。紧跟ed的行;
+: 匹配前面的子表达式一次或多次。比如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,};
?: 匹配前面的子表达式零次或一次。比如。"do(es)?" 能够匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1};

You need to know what you want.

书山有路勤为径,学海无涯苦作舟。

欢迎关注微信公众号:【程序员写书】
程序员写书

喜欢宠物的朋友可以关注:【电巴克宠物Pets】
电巴克宠物

一起学习,一起进步。

-------------本文结束感谢您的阅读-------------