grep

linux四剑客之一grep

grep 常用
grep [-acinv] ‘搜寻字符串’ filename

参数说明:

-a :将 binary 档案以 text 档案的方式搜寻数据

-c :计算找到 '搜寻字符串’的次数

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串’内容的那一行!
[jfcai@bogon ~]$ ls
[jfcai@bogon ~]$ mkdir hl
[jfcai@bogon ~]$ cd hl
[jfcai@bogon hl]$ touch 1.txt
[jfcai@bogon hl]$ ls
1.txt
[jfcai@bogon hl]$ vim 1.txt
[jfcai@bogon hl]$ cat 1.txt

1、搜寻1.txt文件中字符串"the" 注: n为显示行号 grep -n ‘the’ regular_express.txt
2、反向搜寻特定字符串"the" grep -vn ‘the’ regular_express.txt
3、取得任意大小写"the"的这个字符串 # grep -in ‘the’ regular_express.txt
4.利用括号 [] 来搜寻集合字符 搜索test或taste这两个单词
grep -n ‘t[ae]st’ regular_express.txt
这样其实就是在找t[a]st和t[e]st这两个分开的字符
第4题延伸:
如果搜索有 oo 的字符时,则可以使用:# grep -n ‘oo’ regular_express.txt
如果搜索oo时不想搜到 oo 前面有 g 的话,我们可以利用反向选择[^]来达成:
grep -n ‘[^g]oo’ regular_express.txt
如果搜索oo前面不想有小写字符,则:grep -n ‘[^a-z]oo’ regular_express.txt
注: 大写英文/小写英文/数字 可以使用 [a-z]/[A-Z]/[0-9]等方式来书写,也可以写在一起[a-zA-Z0-9]表示要求字符串是数字以及英文
如果我们要取得有数字的那行,则:# grep -n ‘[0-9]’ regular_express.txt
5、显示行首为’the’的字符串 # grep -n ‘^the’ regular_express.txt
6、显示行首是小写字符 grep -n ‘1’ regular_express.txt
7、显示行尾为点 . 的那一行 grep -n ‘.$’ regular_express.txt
8、显示5-9行数据 cat -An regular_express.txt |head -n 10 |tail -n 6
nl 9.txt|grep ‘^\s+5’ -A 4
9、找出g??d字符串,起头g结束d的四个字符串 grep -n ‘g…d’ regular_express.txt
10、o代表空字符(就是有没有字符都可以)或者一个到N个o字符,所以
grep -n 'o
’ regular_express.txt就会把所有行全部打印出来,
11、.oo代表o+空字符或者一个到N个o字符,所以grep -n 'oo’ regular_express.txt就会把o,oo,ooo等的行全部打印出来
12、"goog"代表gog,goog,gooog…等 grep -n 'goog’ regular_express.txt
13、找出含g…g字符串的行grep -n ‘g.*g’ regular_express.txt
14、找出含有数字的行 grep -n ‘[0-9]+’ regular_express.txt 或
grep -n ‘[0-9]’ regular_express.txt

15、找出含两个o的字符串 grep -n ‘o{2}’ regular_express.txt
16、找出g后含2到5个o然后以g结尾的字符串
grep -n ‘go{2,5}g’ regular_express.txt
17、找出g后含2以上的o然后以g结尾的字符串
grep -n ‘go{2,}g’ regular_express.txt

4、grep 与管道
grep 的输入不一定都是文件,它也常常从管道读取输入
[root@yum test]# ls
grep.txt sed1.txt sed2.txt sed.txt
[root@yum test]# ls | grep “grep”
grep.txt
[root@yum test]# ls | grep “^gr”
grep.txt


  1. a-z ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值