awk命令的基本用法
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,awk的基本用法格式awk 动作 文件名/文件名/awk/动作打印当前,print 打印,$0当前行[root@zhaocheng ~]# echo "awk is very useful" |awk
千家信息网最后更新 2024年11月19日awk命令的基本用法
awk的基本用法
格式
awk 动作 文件名/文件名/awk/动作
打印当前,print 打印,$0当前行
[root@zhaocheng ~]# echo "awk is very useful" |awk '{print $0}'awk is very useful[root@zhaocheng ~]# cat filetest root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7bin:*:17834:0:99999:7:dadlp:*:17834:0:99999:7adasync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdanginx:!!:18289::::::daafrabbitmq:!!:18297:::::dada
比如取这个文件的第一个域
-F 分隔符,":" 以冒号为分隔符
'{print $1}' 打印第每一列,这里就是以冒号为分隔符打印每列的第一个域
[root@zhaocheng ~]# cat filetest |awk -F ":" '{print $1}'rootbinlpsyncshutdownhaltnginxrabbitmq
比如以这个文件打印最后一个域,这里打印的时候还是要以什么为分隔符,有的可能是空格
[root@zhaocheng ~]# cat filetest |awk -F ':' '{print $NF}'7dad7adaggdafsdadaafdada
或者取中间的一个域,可以使用$(NF-1),处理的是-1行从后往前-1
[root@zhaocheng ~]# cat filetest |tail -1systemctl start mysqld[root@zhaocheng ~]# cat filetest |tail -1 |awk -F " " '{print $(NF-1)}'start
或者想知道处理的第几行,可以使用NR,这里也就是相当于加了一个")"
[root@zhaocheng ~]# cat filetest|tail -3 |awk -F " " '{print NR ") " $2 }'1) 2) 3) start
比如取ifconfig的IP,这里取IP的方法比较多
[root@zhaocheng ~]# ip a |grep eth02: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 172.17.0.8/20 brd 172.17.15.255 scope global eth0这里是先取的打印每列的第2个域,使用tail -1倒数第一行,使用awk -F以/为分隔符取第一个域[root@zhaocheng ~]# ip a |grep eth0 |awk '{print $2}' |tail -1|awk -F "/" '{print $1}'172.17.0.8
或者直接使用grep过滤出来,使用awk以空格为分隔符,直接取第二个域,再取/号的第一个域
[root@zhaocheng ~]# ip a |grep eth0 |grep inet |awk -F " " '{print $2}' |awk -F "/" '{print $1}'172.17.0.8
也可以使用sed取它的行数,再使用awk精确匹配
[root@zhaocheng ~]# ip a |sed -n '9p'|awk -F " " '{print $2}' |awk -F "/" '{print $1}'172.17.0.8
awk的其他变量
FS:字段分隔符,默认是空格和制表符。
RS:行分隔符,用于分割每一行,默认是换行符。
OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
OFMT:数字输出的格式,默认为%.6g。
比如打印出这个文件中带有nginx子段的所有行
[root@zhaocheng ~]# awk -F ":" '/nginx/ {print $0}' filetest nginx:!!:18289::::::daafdadad:nginx:sdada
比如打印filetest文件第三行以前的行,以:为分隔符打印第三个域
[root@zhaocheng ~]# awk -F ":" 'NR >3 {print $3}' filetest 1783417834178341828918297sdada
分隔符
文件
空格
字段
输出
一行
冒号
动作
换行符
文件名
时分
格式
处理
精确
三个
也就是
制表符
变量
数字
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件维护转行软件开发
单位小型服务器断电
查询课程平均分数数据库
山东居家智慧养老软件开发
论述对三大数据库的摘要
数据库工信部证书
网络安全成新经济发展趋势
金融软件开发协议
手机加宝塔做服务器
福田服务器设备供应商哪家质量好
供应性能稳定的数据库服务器
服务器的cpu可以安装到台式机
深圳市圣达维软件开发
服务器usb接口类型有哪些
cs专业学软件开发有前途吗
浙江省打拐dna数据库网站
php怎样获得数据库版本
ios虚拟服务器强制降级
随着社会不断发展网络安全
数据库MDF文件怎么初始化
一个数据库至多有几个聚集索引
浙江流程管理软件开发
在数据库中 表是
塔城软件开发成交价
沈阳IOS软件开发招聘网
电影院的网络技术
手游不同服务器怎么管理
浙江专业软件开发正规平台
三星s3无法连接服务器
华为服务器性能