Linux
常用
管理语句
Shell命令(变量)
正则表达式
重定向
EXPECT
流程控制
函数
日志
SED
sed常用操作
sed组合命令
sed脚本
AWK
awk常用
awk流程控制
awk脚本
SSH
SSH密钥的批量分发与执行
SSH连接很慢
ACL文件访问控制
计划任务
常用语句
批量添加用户和密码
批量修改密码
临时和永久关闭Selinux
修改主机名
Linux内核参数
无人值守安装
ISO镜像(mondorescue)
软件管理
SYSTEM服务
YUM本地仓
存储管理
逻辑卷LVM
磁盘阵列RAID
备份恢复相关命令
fio磁盘性能测试
内存管理
IPTABLES防火墙
FIREWALLD防火墙
curl请求
Linux问题
漏洞修复
限制网卡带宽
CentosYUM源
rsyslog 占用内存过高
df -h 卡住解决
Linux故障问题
网络配置
升级内核
Openssl生成证书
CENTOS6升级7
本文档使用MrDoc发布
返回首页
-
+
awk常用
2020年1月29日 17:12
admin
##一. 系统变量 $0 #记录变量,表示当前正在处理的记录 $1 #字段变量,表示第n个字段的值 NF #当前行的字段的个数(即当前行被分割成了几列),字段数量 NR #行数 FS #输入字段分隔符, 默认为空白字符 RS #输入记录分隔符(输入换行符), 指定输入时的换行符 OFS #输出字段分隔符, 默认为空白字符 ORS #输出记录分隔符(输出换行符),输出时用指定符号代替换行符 FNR #各文件分别计数的行号 FILENAME #当前文件名 ##二. 匹配模式 >####1.关系表达式 awk '$2>80 {print $0}' inputfile #表示第二列超过80的记录,打印出来 >####2.正则表达式 awk '/^T/ {print $0}' inputfile #表示首字母为T的记录,打印出来 >####3.混合模式 awk '$2>80 && /^T/ {print $0}' inputfile #表示第二列超过80而且首字母为T的记录,打印出来 >####4.区间模式 awk '$2>80,/^T/ {print $0}' inputfile #表示从第一个第二列超过80的记录开始,到第一个首字母为T的记录为止,打印出来 >####4.BEGIN模式与END模式 awk 'BEGIN {命令} /^T/ {print $0} END {命令}' inputfile ##三. 格式化输出 >####1.printf() printf("%format",[参数列表]) #format参数 %s #字符串 %d #十进制整数 %.2f #保留两位小数 %e #浮点格式 printf("%s\t%d\n",$1,"29") #其中圆括号可忽略,printf函数不会自动在末尾加\t >####2.sprintf() sprintf()函数与printf()区别在于该函数只是以字符串的形式返回格式化结果 sum=sprintf("%s\t%d\n",$1,"29") print sum ##四. shell交互 >####1.管道实现 BEGIN { while ("who" | readline) n++ print n } >####2.system函数实现 BEGIN { total=system("ls -l | wc -l") print total } ##五.颜色输出 ![](/media//202002/2020-02-16193853671059.png)
分享到: