Linux中awk命令的一些常见用法_linux awk 指定多个

vi test


输入下面的内容进行测试,然后按键Esc 之后 输入:wq回车保存即可


如果想要重新输入一些内容进行测试,可以全部删除,按键Esc 之后输入:1,.d回车即可


文件test的内容如下:



Tony-ChyiChin-GoodMan-Nice
你好-中国
VERY GOOD
123456789
I love you


### -F"分隔符"


默认是以空格为分隔符,可以像下面这样,不需要指定分隔符



awk ‘{ print $0 }’ test


这个和cat test效果一样


接着查看下面几个的结果:



awk ‘{ print $1 }’ test
awk ‘{ print $2 }’ test
awk ‘{ print $3 }’ test





![](https://img-blog.csdnimg.cn/img_convert/e5877d200d99483db2f62b6acba22bd7.png)



如果是一个或多个空格的情况,需要将多个空格显示出来,如何处理?



cat t.txt
a b c d


这里分别是一个空格两个空格和三个空格



awk ‘{print $1$2$3$4}’ t.txt #abcd
awk -F[[:space:]] ‘{print $1$2$3$4}’ t.txt #a b c d


看出规律了吧,既然是一种模式匹配的语言,那这个跟正则表达式其实一样,每行默认是空格分隔符来进行隔开,然后就是进行分组,可以对每个分组进行各自获取与输出


当然也可以通过-F来指定分隔符,比如下面是通过"-",来对每行文本进行分隔:



awk -F"-" ‘{ print $1 }’ test
awk -F"-" ‘{ print $2 }’ test
awk -F"-" ‘{ print $3 }’ test
awk -F"-" ‘{ print $4 }’ test





![](https://img-blog.csdnimg.cn/img_convert/f96b26ebffcd4c2f88b5baac16c068a4.png)



### 指定多个分隔符


比如下面这个正则表达式,表示的是1个或多个的空格或"-"或","来隔开,其中[]后面的+号熟悉正则表达式知道,表示1个或多个



awk -F ‘[ -,]+’ ‘{print $1" "$3}’ test
‘’’
aaaa ccc
Tony-ChyiChin-GoodMan-Nice
你好-中国
VERY
123456789
I you
‘’’


其中这里的内容我修改了,增加了aaaa,bbb,ccc,ddd,eeee这样一行,尤其注意观察第一行和最后一行,可以看到第一行是逗号隔开了,最后一行是空格隔开,然后取第一个和第三个。


### if条件


如果文本内容行数很多,我们可以选择性打印想要查看的行数内容


大于1行小于等于4行的所有内容,这里的NR就表示读取记录的行数



awk ‘{if(NR>1 && NR<=4) print $0}’ test
‘’’
你好-中国
VERY GOOD
123456789
‘’’


### BEGIN END


BEGIN END可以做一些统计,比如说统计账户数:



awk ‘BEGIN {count=0;print "[start] user count is ",count}{count++;print $0;} END{print "user count is ",count}’ /etc/passwd
‘’’
[start] user count is 0

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

05、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值