Linux常用命令之awk命令
作者简介
听雨:一名在一线从事多年研发的程序员,从事网站后台开发,熟悉java技术栈,对前端技术也有研究,同时也是一名骑行爱好者。
Darren:一个工作经验用了N年的,资深划水人士,除了工作无其他爱好
口号:记录在开发中遇到日常问题、棘手问题的解法和思路
常用命令之awk
背景介绍
awk
命令由Alfred Aho、Peter Weinberger和Brian Kernighan三位开发的,其名称源自开发者姓氏的首字母。AWK不仅是一个命令,更是一种编程语言,专门用于处理和分析文本文件,对文本内容进行高效管理,awk、sed和grep并称为Linux系统中的文本三剑客。
常用参数
参数 | 解释 |
---|---|
-f | 从脚本中读取awk命令 |
-F | 设置输入时字段分隔符 |
内置变量
参数 | 解释 |
---|---|
NF | 浏览记录域的个数 |
RS | 控制记录分隔符 |
参考示例
awkfile.txt
root@master:~/temp/awk# cat awkfile.txt
root:x:0:0:root:/root:/bin/bash rootspace
darren:x:1000:1000:darren:/home/darren:/bin/bash this is space
root@master:~/temp/awk#
打印特定字段的值,注意观察和前面的值,默认分隔是空格
root@master:~/temp/awk# awk '{ print $1, $2 }' awkfile.txt
root:x:0:0:root:/root:/bin/bash rootspace
darren:x:1000:1000:darren:/home/darren:/bin/bash this
指定分隔符分隔,并打印出第一个分隔的值
root@master:~/temp/awk# awk -F : '{print $1}' awkfile.txt
root
darren
按照指定分隔,第三行大于500的行
root@master:~/temp/awk# awk -F : '$3>500' awkfile.txt
darren:x:1000:1000:darren:/home/darren:/bin/bash this is space
root@master:~/temp/awk#
匹配带有root关键字的行
root@master:~/temp/awk# awk '/root/ {print}' awkfile.txt
root:x:0:0:root:/root:/bin/bash rootspace
root@master:~/temp/awk#
指定分隔符后打印最后一个值
root@master:~/temp/awk# awk -F : '{ print $NF }' awkfile.txt
/bin/bash rootspace
/bin/bash this is space
root@master:~/temp/awk#
总结
awk是一个功能强大且灵活的文本处理工具,掌握awk命令能解决很多实际问题,从而提高工作效率,命令需要多使用并实践才能得心应手。
参考:《Linux常用命令自学手册》