正则表达式
正则表达式
正则表达式是用来处理字符串的,可以用一些特定字符来描述字符串里字符出现的规则,从而匹配,提取或者替换符合某一个规则的字符串。 通过特殊字符进行匹配一段字符串 正则表达式: 标准字符与元字符(特殊字符)构造 grep可以使用基础正则表达式,处理行 []内为"或"只能出现一个 grep -n ‘sh[io]rt‘ test.txt //-n显示行号 [^w] grep -n ‘[^w]oo‘ test.txt //匹配三个字母,不是woo就可以 grep -n ‘[^a-z]oo‘ test.txt //oo前不是小写字母 grep -n ‘[0-9]‘ test.txt //匹配单一数字 grep -n ‘^[^a-Z]‘ test.txt //不已a-Z开头的行 "."表示匹配一个任意字符 grep -n ‘w..d‘ a.txt "":号前面的字符出现0次或多次 grep -n ‘abc*‘ a.txt //可以匹配 ab abc abcc abcc…… ".*" :匹配任意长度任意字符 grep -n "w.*p" a.txt {n}:大括号前字符出现n次 {n,m}:大括号前的字符出现n到m次 {n,}:至少出现n次 grep -n "o{2,5}" a.txt // ""表示转义 扩展正则表达式 "+":+号前字符至少出现1次 egrep -n "wo+d" a.txt //匹配最小为 wod "?":问号的字符出现一次或0次 egrep -n "bes?t" a.txt "|":表示"或" egrep "of|is|on" a.txt ():以|进行分割逐个匹配 egrep "t(a|e)st" a.txt ()+:括号内的一串字符出现一次或多次 egrep "A(xyz)+C" a.txt sed文本编辑工具:在过滤的时候进行更改文件(常用于shell脚本) -n 显示修改后的行 sed -n ‘3,5p‘ test.txt //3到5行 p打印出来 打印奇数行 nl test.txt | sed -n ‘p;n‘ //n下一行 打印偶数行 nl test.txt | sed -n ‘n;p‘ 从第10行开始打印 nl test.txt | sed -n ‘10,${p;n}‘ 打印包含the的行 正则表达式用//括起来 sed -n ‘/the/p‘ test.txt 从第四行开始打印包含the的行 sed -n ‘4,/the/p‘ test.txt =表示打印行号 sed -n ‘/the/=‘ test.txt 以PI开头 sed -n ‘/^PI/p‘ test.txt 精确匹配一个单词 sed -n ‘/&;wood&;/p‘ test.txt 删除包含cross的行 nl test.txt | sed ‘/cross/d‘ 删除以.结尾的行 sed ‘/.$/d‘ a.txt 替换 sed ‘s/the/THE/‘ a.txt 在每行的前面加入一个#号 sed -i ‘s/^/#/‘ b.txt 删除第三行的#号 sed -i ‘3s/#//‘ b.txt 剪切the行,粘贴到最后一行 sed ‘/the/{H;d};$G‘ a.txt //H 复制 G 粘贴 过滤并保存到abc.txt sed ‘/the/w abc.txt‘ test.txt //w保存 追加abc.txt里的内容追加到每个the行的下面 sed ‘/the/r abc.txt‘ test.txt //r追加 awk文本编辑工具 sed逐行进程操作,awk可以基于段进行操作 以":"进行分割,打印第1段和第3段 逐行操作 awk -F ‘:‘ ‘{print $1 $3}‘ /etc/passwd //默认以空格进行分割 awk内建变量 FS:分割符,默认为空格 NF:正在操作的行分了几个字段 NR:当前操作的行号 $0:当前操作行的内容 $n:当前操作的是第几段 FILENAME:操作的文件名 RS:基于什么判断行数,n回车换行 打印1~3行 awk ‘NR==1,NR==3{print}‘ test.txt 打印行号大于等于1小于等于3的行 awk ‘NR>=1&&NR<=3 {print}‘ test.txt 统计文件内以/bin/bash结尾的行 awk ‘BEGIN {x=0}; //bin/bash$/{x++};END {print x}‘ /etc/passwd 感谢阅读 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- flex集成IFrame,IFrame集成UnityWebPlayer直接通讯调用解决
- ruby-on-rails – 使用基于特定键的哈希元素对数组进行排序
- ruby-on-rails – 从Rails 4.0更新到4.1会导致sass-rail铁路
- ssm项目配置xml使用spring session进行session共享
- vue3.0 CLI - 2.1 - component 组件入门教程
- oracle求字符串长度函数length()和hengthb()简介
- 面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
- 「CF442C」 Artem and Array
- PostgreSQL时间运算
- vb程序异地发布