linux grep命令

 linux grep命令 

 


1.作用
   查找文件里符合条件的字符串,它的使用权限是所有用户。

2.格式
   grep [options]

3.主要参数
  [options]主要参数:
   -c:只输出匹配行的计数。
   -i:不区分大 小写(只适用于单字符)。
   -h:查询多文件时不显示文件名。
   -l:查询多文件时只输出包含匹配字符的文件名。
   -n:显示匹配行及 行号。
   -s:不显示不存在或无匹配文本的错误信息。
   -v:反向选取,只显示不符合模式的行。
   -E: 使用扩展的正则表达式
           grep -E = egrep

pattern正则表达式主要参数:
   \: 忽略正则表达式中特殊字符的原有含义。
   ^:匹配正则表达式的开始行。
   $: 匹配正则表达式的结束行。
   \<:从匹配正则表达 式的行开始。
   \>:到匹配正则表达式的行结束。
   [ ]:单个字符,如[A]即A符合要求 。
   [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
   . :所有的单个字符。
   * :有字符,长度可以为0。

4.grep命令使用实例
  $ grep ‘test’ d*
  显示所有以d开头的文件中包含 test的行。
  $ grep ‘test’ aa bb cc
  显示在aa,bb,cc文件中匹配test的行。
  $ grep ‘[a-z]\{5\}’ aa
  显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
5.假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:
  $ grep magic /usr/src/Linux/Doc/*
  sysrq.txt:* How do I enable the magic SysRQ key?
  sysrq.txt:* How do I use the magic SysRQ key?
  其中文件’sysrp.txt’包含该字符串
默认情况下,’grep’只搜索当前目录。
如果有很多 输出时,您可以通过管道将其转到’less’上阅
$ grep magic /usr/src/Linux/Documentation/* | less这样,您就可以更方便地阅读。

命令行参数:
  grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
  grep -l pattern files :只列出匹配的文件名,
  grep -L pattern files :列出不匹配的文件名,
  grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不 是’   magical’),
  grep -C number pattern files :匹配的上下文分别显示[number]行,
  grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
  grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

  grep -n pattern files  即可显示行号信息

  grep -c pattern files  即可查找总行数

用于搜索的特殊符号:
   \<:锚定行首的符合条件的内容,用法格式“^pattern”;
   $: 锚定行尾的符合条件的内容,用法格式“pattern$”;
   ^pattern$: 
   ^$: 空白行
   .: 匹配任意单个字符
   *:匹配紧挨在其前面的字符任意次;
   a*b: ab, aab, acb, b
   .*: 匹配任意长度的任意字符
   \?: 匹配紧挨在其前面的字符0次或1次;
   a\?b: ab, aab, acb, b
   \{m,n\}: 匹配其前面的字符至少m次,至多n次;
   \{0,n\}: 至多n次;0-n次;
   \{m,\}:至少m次
   \{m\}: 精确匹配m次;
   \<: 锚定词首,用法格式:\<pattern
   \b: \bpattern
   \>: 锚定词尾,用法格式:pattern\>
   \b: pattern\b
   \<pattern\>:锚定单词
   \(\): 分组,用法格式: \(pattern\)
   \(ab\)\{1,3\}: ab, aab, abb, abab, ababab, 
   ab任意字符ab:ab.*ab
   a.b任意字符a.b: \(a.b\).*\1
   []:匹配指定范围内的任意单个字符
   [^]:匹配指定范围外的任意单个字符
   [:lower:]:所有的小写字母
   [:upper:]:所有的大写字母
   [:digit:]:所有的数字
   [:alpha:]:所有的大小写字母
   [:alnum:]:所有的大小写字母数字
   [:space:]:所有的空白字符
   [:punct:]:所有的字符

 

你可能感兴趣的:(linux,字符串,用户,表达式,信息)