Linux系统命令三剑客命令实战操作(文未有福利)

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

转载声明:转载请注明出处,本技术博客是本人原创文章

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Linux系统命令三剑客命令实战操作(文未有福利)

Linux系统命令三剑客命令实战操作(文未有福利)

01

Grep实例介绍

**grep “San” testfile           **

**  #过滤有San的行**

**grep ‘^J’ testfile            **

**  #显示以J开头的行**

**grep ‘70$’ testfile           **

**  #显示以70结尾的行**

**grep -v “834” testfile        **

**  #显示所有不包括834的行**

**grep ‘:12/‘ testfile        **

**  #显示:12/的行**** **

**grep ‘:498-‘ testfile       **

**  #显示:498-的行**

**grep ‘[A-Z][a-z]{4}:[[:space:]][A-Z]’ testfile **

**  #显示这样的行,一个大写字母+四个小写字母+空格+一个大写字母**

**grep ‘[a-z]{1,}[[:space:]][Kk]’ testfile **

**  #显示包括K k的行**

**grep -n ‘[0-9]{6,}$’ testfile **

**  #显示6位数字的行,并打印行号**

**grep -i “lincoln” testfile    **

**  #显示有lincoln的行,不区分大小写**

02

Sed实例介绍

sed ‘s/Jon/Jonathan/g’ testfile    

  #全局替换(Jon替换成Jonathan)

sed ‘1,3d’ testfile                

  #删除文件1-3行

sed -n ‘5,10p’ testfile            

  #打印文件5-10行内容

sed ‘/Lane/d’ testfile            

  #删除包包含lane的行

sed -ne ‘/[1-9]{5}:1[12]/p’ testfile 

  #打印由5个数字+:11/12的行

sed ‘s/^Fred/***&/‘ testfile 

  #在以Fred开头的行前加上***

sed -e ‘s/.Jose./JOSE HAS RETIRE/g’ testfile   

  #将包含Jose的行替换成JOSE HAS RETIRE

sed -n ‘/^Popeye/p’ testfile |sed ‘s/[0-9]{1,}/[0-9]{1,}/[0-9]{1,}/11/14/46/‘ 

#将以Popeye开头的行打印,然后将“数字/数字/数字”这格式的数字串替换成 11/14/46

##pattern{n} 匹配模式出现n次。

##pattern{n,} 匹配模式出现最少n次。

##pattern{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数

sed ‘/^$/d’ testfile   

  #删除所有空行

sed ‘s/.$//g’         

  #删除以.结尾行

sed ‘s/^[][]*//g’      

  #删除行首空格

sed ‘s//.[][]*/[]/g’   

  #删除句号后跟两个或更多的空格,用一个空格代替

sed ‘s/^.//g’          

  #删除第一个字符

sed ‘s/COL/(…/)//g’  

  #删除紧跟COL的后三个字符

sed ‘s/^////g’         

  #删除路径中第一个/

sed -n ‘3,/245700/‘p testfile

  #从第三行开始查询到245700结束并打印

sed -n ‘2,26!’p testfile

  #打印文件(除2-26)的行

03

Awk实例介绍

awk –F : ‘{print $2}’ datafile

  #以:分隔打印第二列

awk –F : ‘/^Dan/{print $2}’ datafile

  #以:分隔打印以Dan开头行的第二列内容

awk –F : ‘/^[CE]/{print $1}’ datafile 

  #打印以C或E开头行的第一列

awk –F : ‘{if(length($1) == 4) print $1}’ datafile 

  #打印以:分隔且长度为4字符的第一列内容

awk –F : ‘/[916]/{print $1}’ datafile

  #匹配916的行以:分隔打印第一列

awk -F : ‘/^Vinh/{print “a”$5}’ 2.txt

  #显示以Dan开头行并在第五列前加上a

awk –F : ‘{print $2”,”$1}’  datafile

  #打印第二列第一列并以,分隔

awk -F : ‘($5 == 68900) {print $1}’ 2.txt

  #以:分隔打印第五列是68900的行第一列  

awk -F : ‘{if(length($1) == 11) print $1}’ 2.txt

  #打印以:分隔且长度为4字符的第一列内容

awk -F : ‘$1~/Tommy Savage/ {print $5}’ 2.txt

awk -F : ‘($1 == “Tommy Savage”) {print $5}’ 2.txt

  #打印以:分隔且第一列为Tommy Savage的第五列内容

ll |awk ‘BEGIN {size=0;} {size=size+$5;} END{print “[end]size is “,size}’

  #统计目录个的文件所有的字节数

awk ‘BEGIN{size=0;} {size=size+$5;} END{print “[end]size is “,size/1024/1024,”M”}’ 

  #以M为单位显示目录下的所有字节数

awk ‘BEGIN{a=10;a+=10;print a}’

20   

  #a+10等价于 a=a+10

echo|awk ‘BEGIN{a=”100testaaa”}a~/test/{print “ok”}’   

  #正则匹配a 是否有test字符,成立打印ok

awk ‘BEGIN{a=”b”;print a==”b”?”ok”:”err”}’

ok

awk ‘BEGIN{a=”b”;print a==”c”?”ok”:”err”}’

err

  #三目运算符?:

awk ‘/root/{print $0}’ passwd 

  #匹配所有包含root的行

awk -F: ‘$5~/root/{print $0}’ passwd  

  # 以分号作为分隔符,匹配第5个字段是root的行

ifconfig eth0|awk ‘BEGIN{FS=”[[:space:]:]+”} NR==2{print $4}’

  #打印IP地址

awk ‘{print toupper($0)}’ test.txt

  #toupper是awk内置函数,将所小写字母转换成大写

注:凡在此文章后留言,截止本周六(11.25 12:00)止留言点赞数超过88且前三名的伙们,免费赠送Docker+ELK视频一套

更多内容请持续关注微信公众号相关的文章

需要购买民工哥电子版(PDF)新书的,可在公众号后台发送信息  “购书” 即可获取相关信息,购买后入加群学习与交流,还可获得随时分享的实际生产环境配置或注意事项、可供练习的云服务器资源等等

Linux系统命令三剑客命令实战操作(文未有福利) Linux系统命令三剑客命令实战操作(文未有福利)
本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

转载声明:转载请注明出处,本技术博客是本人原创文章

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Linux系统命令三剑客命令实战操作(文未有福利)


 上一篇
Linux三剑客命令之Sed Linux三剑客命令之Sed
命令名称 **  Sed**  一个强大的流式文本编辑器 详细说明   sed是一种流编辑器,也是文本处理中非常好的工具,配合正则使用更强大处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区的内容,完成
2021-04-05
下一篇 
浅谈MySQL集群高可用架构 浅谈MySQL集群高可用架构
高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,
2021-04-05