linux中grep的笔记

来源:互联网 发布:销售软件增值税税率 编辑:程序博客网 时间:2024/06/08 19:05

grep [选项] 正则表达式 文件
选项:
  -n :显示匹配的行及行号
  -c :显示匹配的行数
  -v: 显示不匹配的行
  -l:查询多个文件时只显示匹配的文件名
  -h:查询多文件时不显示匹配的文件名
  -s :不显示不存在或不匹配的错误信息
  -i: 查找单字符时不区分大小写
注意:
 查找字符串或者变量时加上双引号 如:grep "$myfile" 文件
48  Dec 3BC1997 LPSX 68.00 LVX@A 138
483 Sept 5AP1996 USP 65.00 LVX2C 189
47 Oct 3ZL1998 LPSX 43.00 KVM9D 512
219 dec 2CC1999 CAD 23.00 PLV2C 68
484 nov 7PL1996 CAD 49.00 PLV2C 234
483 may 5PA1998 USP 37.00 KVM9D 644
216 sept 3ZL1998 USP 86.00 KVM9E 234

精确查找含字符串的行,加上\>:
grep "48\>" data.f

不区分大小写:
grep -i "sept" data.f


使用正则表达式:
grep '48[34]' data.f


不匹配行首:
grep '^[^48]' data.f


不区分大小写用表达式:
grep '[Ss]ept' data.f


使用管道对查询的结果进一步筛选:
grep '[Ss]ept' data.f | grep "483"


grep '[A-Z][A-Z]..C' data.f
grep '[0-9]\{3\}[8]' data.f :任意数字出现3次,后面跟8的。
grep '[0-9]\{3\}8' data.f


grep '^[0-9][0-5][0-6]' data.f : ^代表从行首开始查找
grep '4\{2,\}' data.f  :连续出现两次以上
grep '9\{2,3\}8' data.f 在查找行中9连续出现至少两次到三次并以8结尾

grep -E '483|484' data.f :使用扩展正则表达式需要加 -E 选项 ,| 代表或。
结合使用^与$ 能查询空行:
grep '^$' data.f
使用国际字符模式:
grep '[[:upper:]][[:upper:]][P]' data.f

[[:upper:]] == [A-Z]  [[:lower:]]==[[a-z]]  [[:alpha:]] == [a-ZA-Z] [[:digit:]] == [0-9]  [[:alnum:]] == [0-9a-zA-Z]
[[:space:]] == 空格或TAB键

ls -l | grep '^d':查找目录
在字符串中查找字符串

 

把字符串保存在文件中,然后再去匹配另一个文件
:egrep -f myfile data.f


who | egrep -v '^(dpp|dtp)':
查找除dpp dtp之外的用户

原创粉丝点击