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

正则表达式grep sed awk总结

发布时间:2020-12-13 23:07:26 所属栏目:百科 来源:网络整理
导读:1.grep命令总结 [root@cacti~]#catzh888.txt//查看zh888.txt内容 123 456 abc def def [root@cacti~]#grep-c"123"zh888.txt//打印123的行数为1行 1 [root@cacti~]#echo"123456"zh888.txt//在追加123456到zh888.txt文本中 [root@cacti~]#grep-c"123"zh888.txt


1.grep命令总结

[root@cacti~]#catzh888.txt//查看zh888.txt内容
123
456
abc
def
def
[root@cacti~]#grep-c"123"zh888.txt//打印123的行数为1行
1
[root@cacti~]#echo"123456">>zh888.txt//在追加123456到zh888.txt文本中

[root@cacti~]#grep-c"123"zh888.txt//打印123的行数变为2
2
[root@cacti~]#grep-v"123"zh888.txt//把123行不打印出来
456
abc
def
def
[root@cacti~]#grep-n"123"zh888.txt//输出内容和行数
1:123
6:123456
[root@cacti~]#grep[0-9]zh888.txt//grep0-9的数字
123
456
123456
[root@cacti~]#grep-v[0-9]zh888.txt//去掉0-9
abc
def
def
[root@cacti~]#grep'^1'zh888.txt//,”^”表示行的开始,”$”表示行的结尾,那么空行则表示”^$”,
123
123456
[root@cacti~]#grep'f$'zh888.txt//过滤f结尾的内容
def
def
[root@cacti~]#grep'^[^a-zA-Z]'zh888.txt//把数字全部过滤出来
123
456
123456
456789
234567
[root@cacti~]#grep'1..4'zh888.txt//“.”表示任意一个字符,上例中,就是把符合r与o之间有两个任意字符的行过滤出来。
123456


[root@cacti~]#grep'123*'zh888.txt//“*”表示零个或多个前面的字符。
123
123456


[root@cacti~]#grep'.*'zh888.txt//‘.*’表示零个或多个任意字符,空行也包含在内。
123
456
abc
def
def
123456
456789
234567


2.sed的命令总结
[root@cacti~]#sed-n'1'pzh888.txt//打印zh888.txt第一行内容
123

[root@cacti~]#sed-n'1,3'pzh888.txt//打印1-3行的内容
123
456
abc

[root@cacti~]#sed-n'/abc/'pzh888.txt//打印包含abc的字符串内容
abc

[root@cacti~]#sed-n'/^1/'pzh888.txt//打印1开头的内容
123
123456

[root@cacti~]#sed-n'/6$/'pzh888.txt//打印6结尾的内容
456
123456

[root@cacti~]#sed-n'/1..4/'pzh888.txt//打印1..4的任意内容
123456


[root@cacti~]#sed-n'/23*/'pzh888.txt//大衣呢23结尾的任意内容
123
123456
234567

[root@cacti~]#sed-e'1'p-e'/123/'p-nzh888.txt//打印123开头的内容
123
123
123456

[root@cacti~]#sed'1'dzh888.txt//删除第一行内容
456
abc
def
def
123456
456789
234567

[root@cacti~]#sed'2,$'dzh888.txt//删除2到结尾的所有内容
123

[root@cacti~]#sed'1,3'dzh888.txt//删除1到3的内容
def
def
123456
456789
234567

[root@cacti~]#sed'/123/'dzh888.txt//删除123的内容
456
abc
def
def
456789
234567

[root@cacti~]#sed'1,2s/123/888/g'zh888.txt//1到2行的123替换成888以全局替换,/可以换成#或者@都是可以的。
888
456
abc
def
def
123456
456789
234567


[root@cacti~]#sed's/[0-9]//g'zh888.txt//把0到9数字全部过滤掉


abc
def
def

[root@cacti~]#sed's/[a-zA-Z]//g'zh888.txt//吧a-zA-Z的字母全部替换掉
123
456

123456
456789
234567


3.awk命令总结


[root@cacti~]#echo"1:2:3">>zh888.txt//添加内容到zh888中去


[root@cacti~]#echo"4:5:6:7">>zh888.txt//添加内容到zh888中区


[root@cacti~]#tail-n2zh888.txt|awk-F':''{print$1}'//查看末尾2行利用管道和分隔符打印第一段字段内容。
1
4

[root@cacti~]#tail-n2zh888.txt|awk-F':''{print$1"zh888"$2"zh888"}'//在第一字段和第二字段末尾加上zh888
1zh8882zh888
4zh8885zh888

[root@cacti~]#tail-n2zh888.txt|awk-F':''{print"zh888"$1}'//在第一字段前面添加zh888内容
zh8881
zh8884

[root@cacti~]#awk'/123/'zh888.txt//查找123内容
123
123456

[root@cacti~]#awk-F':''$1~/7/'zh888.txt//让awk来匹配第一段7开头的数字
456789
234567


[root@cacti~]#awk-F':''/1/{print$2}/2/{print$3}'zh888.txt//利用awk连续匹配


2
3

[root@cacti~]#awk-F':''$2=="5"'zh888.txt
4:5:6:7
//利用逻辑判断等于来判断第二字段是否是5然后打印出来,awk中是可以用逻辑符号判断的,比如’==’就是等于,也可以理解为“精确匹配”。另外也有’>’,‘>=’,‘<’,‘<=’,‘!=’等等,值得注意的是,即使$3为数字,awk也不会把它当数字看待,它会认为是一个字符。所以不要妄图去拿$3当数字去和数字做比较。


[root@cacti~]#awk'{printNR}'zh888.txt//利用分隔符分割一共多少段
1
2
3
4
5
6
7
8
9
10

[root@cacti~]#awk'{printNF}'zh888.txt//一共有多少行
1
1
1
1
1
1
1
1
1
1

[root@cacti~]#awk'NR>=5'zh888.txt//大于5的行数打印出来def1234564567892345671:2:34:5:6:7

(编辑:李大同)

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

    推荐文章
      热点阅读