Centos grep 命令
  dIZ4mPo2q5Ch 2023年11月02日 83 0


grep 全称是 Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户,grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来

常用选项:

-E :开启扩展(Extend)的正则表达式,使用 | 来分割多个pattern,以此实现OR操作

-i :忽略大小写(ignore case)

-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印

-n :显示行号

-w :被匹配的文本只能是单词,而不能是单词中的某一部分

-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到

-o :只显示被模式匹配到的字符串

-e :实现多个选项的匹配,逻辑or关系

--color :将匹配到的内容以颜色高亮显示。

-A  n :显示匹配到的字符串所在的行及其后 n 行

-B  n :显示匹配到的字符串所在的行及其前 n 行

-C  n :显示匹配到的字符串所在的行及其前后各 n 行

正则表达式

通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身的含义就需要‘\’进行转译。

1、字符匹配

. // 任意一个字符

[] // 匹配范围内的任意一个字符

[^] // 范围外任意一个字符

次数匹配

* // 匹配前面的字符0次到n次

\? // 匹配前面的字符0次到1次

\+ // 匹配前面字符1次到n次

\{m\} // 匹配前面的一个字符m次

\{m,n\} // 匹配前一个字符m到n次

\{0,n\} // 匹配前面的字符0次到n次(0必须加)

\{m,\} // 匹配前面一个字符至少m次

位置锚钉

^ // 锚定行首

$ // 锚定行尾

\b // 锚定词首或词尾(用在前面为词首,后面为词尾)

\> // 锚定词尾

\< // 锚定词首

分组
特性:
默认情况下,Linux系统会为分组指定变量,变量的表示形式\1 \2 \3 ...(后向 引用)

abc* // 我们把abc看成一个整体

\(\) // 将里面的看作是一个整体进行匹配

补充:

扩展正则表达式分组用"()"表示;
标准正则表达式中的"\"可以去掉;

grep 实例

cat test.txt

abc
aabc
aaabbbc
good
alice

# 查找文本中 包含 "a",2-3次行
grep 'a\{2,3\}' test.txt

aabc
aaabbbc

# 查找文本中 以 "d" 结尾的行
grep "d$" test.txt

good

# 查找文本中 以 "a" 开头的行
cat test.txt | grep ^a

abc
aabc
aaabbbc
alice

# 同时过滤空白行与注释行
cat test.txt | grep -v '^$' | grep -v '^#'

# 显示不以 # 开头的行
cat test.txt | grep ^[^#]
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  JDh7sMsPQI0Y   2023年11月13日   29   0   0 jsonSystem字符串
dIZ4mPo2q5Ch