加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:53:00 所属栏目:百科 来源:网络整理
导读:1. grep 使用: * grep -n 'the' -A 2 -B 2 --color=auto regular_express.txt 对该命令的介绍: -n 表示显示行号; -A 和 -B 分别表示显示找到的关键字所在行的前面2行和后面两行; --color 让关键字显示出语种不同的颜色 * grep -n -v 'the' regular_expre
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私房菜

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读