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密码?