正则表达式相关的命令

本贴最后更新于 1676 天前,其中的信息可能已经物是人非

shell 中的通配符:

*: 代表 0 个或者多个任意字符
?: 代表一定有一个的任意字符
[]: 代表一定有一个在括号内的字符(非任意字符)。例如[abcd]代表一定有一个字符,可能是 abcd 这四个选项的任意一个。
[-]:若邮件韩在括号内时,代表在编码顺序内的所有自负。例如:[0-9]代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的。
[^]: 若括号内的第一个字符为指数字符(^),那表示反向选择,例如:[^abc]代表一定有一个字符,只要是非 abc 的其他字符就可以。

基础元字符

^:匹配行首位置
$:匹配行尾位置
.:匹配任意祖父
*:对*之前的匹配整体或字符匹配任意次(包括 0 次)
\?:对?之前的匹配整体或字符匹配 0 次或 1 次
\{n\}: 对 \ { 之前的匹配整体或字符匹配 n 次
\{m,\}: 对 \ { 之前的匹配整体或字符匹配至少 m 次
\{m,n}: 对 \ { 之前的匹配整体或字符匹配 m 到 n 次
[abcdef]: 对单字符而言匹配[]中的字符
[a-z]: 对单字符而言,匹配任意一个小写字母
[^a-z]:不匹配括号中的内容

扩展元字符

扩展正则表达式与基础正则表达式的唯一区别在于:? + () {} 这几个字符。

grep  (Global regular expression print) 行筛选

Regexp selection and interpretation:

  -E, --extended-regexp     PATTERN is an extended regular expression (ERE)
  //扩展的正则表达式模式匹配
  -F, --fixed-strings       PATTERN is a set of newline-separated strings
  //固定字符串搜索模式匹配
  -G, --basic-regexp        PATTERN is a basic regular expression (BRE)
  //基本正则表达模式匹配
  -P, --perl-regexp         PATTERN is a Perl regular expression
  //Perl风格的正则表达式模式匹配
  -e, --regexp=PATTERN      use PATTERN for matching
  //用模式匹配
  -f, --file=FILE           obtain PATTERN from FILE
  //从文件中获取模式
  -i, --ignore-case         ignore case distinctions
  //忽略大小写敏感
  -B, --before-context=NUM  print NUM lines of leading context
  //除了显示符合样式的那一行之外,并显示该行之前的内容。
  -A, --after-context=NUM   print NUM lines of trailing context
  //除了显示符合样式的那一行之外,并显示该行之后的内容。
  -C, --context=NUM         print NUM lines of output context 
 grep  -G '^fun' ./main_test.go     // 匹配以fun开头的行

 grep  -E '^(fun)' ./main_test.go   // 匹配以fun开头的行 

 grep  -A '^fun' ./main_test.go     // 匹配以fun开头和之前的行

 grep  -i  'test' ./main_test.go        // 不区分大写匹配含有test的行
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...