首页 > 代码库 > 正则表达式
正则表达式
1. grep 使用: |
* grep -n ‘the‘ -A 2 -B 2 --color=auto regular_express.txt |
对该命令的介绍: |
-n 表示显示行号; |
-A 和 -B 分别表示显示找到的关键字所在行的前面2行和后面两行; |
--color 让关键字显示出语种不同的颜色 |
* grep -n -v ‘the‘ regular_express.txt |
-v 选项表示选择 *不包含* eth0 的行 |
* grep -n -i ‘the‘ regular_express.txt |
-i 表示忽略大小写 |
* grep -n ‘t[ae]st‘ regular_express.txt |
[] 表示选择括号中多个字符中的一个,例如,可选tast或test |
* grep -n ‘[^g]oo‘ regular_express.txt |
[^g]oo 表示选择前面没有g的oo |
[^a-z]oo 选择oo前面不为24个小写字符的情况 |
* grep -n ‘[0-9]‘ regular_express.txt |
选择包含数字的那一行 |
* grep -n ‘^the‘ regular_express.txt |
选择以the开头的那一行 |
grep -n ‘^[a-z]‘ regular_express.txt |
选择以小写字母开头的那一行 |
grep -n ‘^[^A-Za-z]‘ regular_express.txt |
选择不以英文字母开头的那一行 |
^ 在中括号里,表示反向选择,在中括号外,表示行首 |
* grep -n ‘\.$‘ regular_express.txt |
选择以 . 结尾的行 |
$ 表示行尾 |
* grep -n ‘^$‘ regular_express.txt |
查询空行 |
* 注:在~/.bashrc中可以设置不用给grep加--color=auto选项就可以 |
显示颜色,在里面添加一行 alias grep=‘grep --color=auto‘ |
2. 在正规表示法中: |
* “.”表示一定有一个字符 |
* “*”表示零个或者多个字符 |
* 例如: |
grep -n ‘g..d‘ regular_express.txt |
表示查找g和d之间有两个任意字符的单词,所在的行,可能时good,gold等 |
grep -n ‘goo*g‘ regular_express.txt |
表示查找两个g之间有一个或者多个o的关键字所在的行 |
grep -n ‘[0-9][0-9]*‘ regular_express.txt |
表示查找数字 |
* grep -n ‘o\{2\}‘ regular_express.txt |
查找连续出现2个字符o所在的行 |
grep -n ‘go\{2,5\}g‘ regular_express.txt |
查找两个g之间有2到5个o所在的行 |
grep -n ‘go\{2,\}g‘ regular_express.txt |
查找含有两个以上的o所在的行 |
3. sed工具的使用 |
* nl regular_express.txt | sed ‘2,5d‘ |
删除第二行和第五行,注意并没有对regular_express.txt文件做任何修改 |
nl regular_express.txt | sed ‘2d‘ |
删除第二行 |
nl regular_express.txt | sed ‘2,$d‘ |
删除第二行到最后一行,$表示最后一行 |
* nl regular_express.txt | sed ‘2a drink tea‘ |
在第二行后(即第三行)加上drink tea字样 |
nl regular_express.txt | sed ‘2i drink tea‘ |
在第二行之前(即第二行)加上drink tea字样 |
nl regular_express.txt | sed ‘2a drink tea \ |
or beer ?‘ |
在第二行之后增加两行 |
* nl regular_express.txt | sed ‘2,5c No 2-5‘ |
将2到5行替换为No 2-5 |
* nl regular_express.txt | sed -n ‘2,7p‘ |
打印第2-7行的内容 |
* nl regular_express.txt | sed ‘s/Open/Close/g‘ |
将文件中的Open字符串替换为Close |
* /sbin/ifconfig eth0 | grep ‘inet addr‘ | sed ‘s/^.*addr://g‘ | sed ‘s/Bcast.*$//g‘ |
用来提取系统的IP地址,尤其注意这里使用将要删除的字符串替换为空,达到删除的目的 |
* cat /etc/manpath.config | sed ‘/^$/d‘ |
用来删除空行 |
* sed -i ‘s/\.$/\!/g‘ regular_express.txt |
将文件末尾的“.”替换为“!”,直接对文件本身进行修改 参考资料 ============= 鸟哥的linux私房菜 |
正则表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。