一 awk命令
1.1 命令的作用
awk为行命令处理器,对每一行的文本数据,进行格式化文本信息。
目的:在处理庞大文件时不会出现内存溢出或是处理缓慢的问题。
1.2 案例应用
获取某一行文本数据,提取不同字段的值。
1.显示整行数据
[root@localhost jiaoben]# tail -n 1 nohup.out
2023-01-04 15:04:40.001 [scheduling-1] INFO GlDeviceStopTotalTaskLog - m:30 开始进行休眠
2截取不同字段数据
[root@localhost jiaoben]# tail -n 1 nohup.out |awk '{print $0}'
2023-01-04 15:04:40.001 [scheduling-1] INFO GlDeviceStopTotalTaskLog - m:30 开始进行休眠
[root@localhost jiaoben]# tail -n 1 nohup.out |awk '{print $1}'
2023-01-04
[root@localhost jiaoben]# tail -n 1 nohup.out |awk '{print $2}'
15:04:40.001
[root@localhost jiaoben]# tail -n 1 nohup.out |awk '{print $1,$2}'
2023-01-04 15:04:40.001
注意解释:
$0 表示整个当前行
$1 每行第一个字段
二 argxs命令
2.1 argxs的命令参数
xargs 是一个非常强大的命令,它获取命令的输出并将其作为另一个命令的参数传递。
xargs命令是给其它命令传递参数的过滤器。流转示意图如下:
2.2 案例操作
2.2.1 输出多行数据
2.2.2 删除多余文件
找到制定目录下,删除修改日期为两天前的文件。
find /home/new-idaa-analysis/logs/ -mtime +2 -type f |xargs rm -f
2.2.3 查询统计当前目录下所有log文件的行数
[root@localhost logs]# find ./ -type f -name "*.log"|xargs wc -l
28 ./dky-guolu-stopdevice-total-task.log
21 ./gldevicestoptotaltask/gldevicestoptotaltask.log
49 total
[root@localhost logs]#