linux文本处理三剑客的辅助-正则表达式

打印 上一主题 下一主题

主题 709|帖子 709|积分 2127

正则表达式



  • 使用基本正则表达式
  • 默认环境下,grep 使用基本正则表达式(BRE):
grep "patt*ern" file.txt 匹配 'patt' 后跟零个或多个 't' 和 'ern'


  • 使用扩展正则表达式
  • 使用 -E 选项启用扩展正则表达式(ERE),如许就可以使用更多的正则表达式特性:
grep -E "pat(t|e)*rn" file.txt 匹配 'pat' 后跟零个或多个 't' 或 'e' 和 'rn'


  • 匹配多个模式
  • 使用 -e 选项可以指定多个搜索模式:
  1. grep -e "pattern1" -e "pattern2" file.txt
复制代码
其他有用的选项



  • --color
  • 使用 --color 选项高亮表现匹配的文本:
  1. grep --color "pattern" file.txt
复制代码


  • -m NUM
  • 使用 -m 选项在找到指定数目标匹配行之后停止读取文件:
bash复制代码 grep -m 3 "pattern" file.txt 只输出前3个匹配行


  • -l 和 -L
  • 分别使用 -l 和 -L 选项列出包含至少一个匹配行的文件名,或不包含匹配行的文件名:
grep -l "pattern" *.txt 列出包含 "pattern" 的文件 grep -L "pattern" *.txt 列出不包含 "pattern" 的文件


  • -w
  • 使用 -w 选项匹配整个单词,而不是字符串的一部分:
grep -w "pattern" file.txt 只匹配完备的单词 "pattern"


  • -x
  • 使用 -x 选项匹配整行:
bash复制代码 grep -x "exact pattern" file.txt 只匹配整行完满是 "exact pattern" 的行


  • -q
  • 使用 -q (quiet) 选项克制输出,通常与脚本或条件测试共同使用:
grep -q "pattern" file.txt 不输出任何内容if grep -q "pattern" file.txt; thenecho "attern found!"fi


  • -s
  • 使用 -s 选项静默模式,不表现关于不存在或不可读的文件的错误信息:
  1. grep -s "pattern" file.txt
复制代码


  • -F
  • 使用 -F 选项将模式作为固定字符串处理,而不是正则表达式。这对于包含特殊字符(例如 * 或 ?)的模式搜索很有用,而这些字符在正则表达式中有特殊寄义:
  1. grep -F "string*with?special_characters" file.txt
复制代码


  • -e PATTERN
  • 使用 -e 选项指定多个搜索模式。这对于模式本身以 - 开头的环境特殊有用,或者当你需要指定多个独立的搜索模式时:
  1. grep -e "^pattern1" -e "pattern2$" -e "pattern3" file.txt
复制代码


  • --include, --exclude, --exclude-dir
  • 使用 --include 和 --exclude 选项可以根据文件模式搜索或清除特定文件。使用 --exclude-dir 可以清除目次:
  1. grep "pattern" --include="*.txt" -r /path/to/search grep "pattern" --exclude="*.log" -r /path/to/search grep "pattern" --exclude-dir={dir1,dir2} -r /path/to/search
复制代码
grep 的功能非常强大,而这些选项仅仅是它本领的一部分。把握 grep 可以极大地提拔你在文本处理和日记分析等任务上的效率。记得在使用这些选项之前,你可以通过 man grep 或 grep --help 检察更多的信息和示例。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表