任务说明:日志文件中存在多条记录,现要求取出文件中的某两列,而且是去重,取最新的一条记录(就是取这个ID最后出现的那一行的那两列)
脚本代码如下:
#shell声明
#!/bin/bash
#获取最后一行的行号
line_desc_num=`awk 'END{print NR}' log.txt`
#循环每一行,从第一行开始
for i in $line_desc_num
#进入循环
do
#取出这一行的第六列和第七列,用_隔开,并追加到一个新文件中
output=`cat log.txt |awk -v bl=$i -F'|' '{print $6"_"$7}'`
echo "$output" >> /tmp/cs
#结束循环
done
#创建新文件来存储最终结果
touch newfile
#查看cs文件存为变量
all_text=`cat /tmp/cs`
#循环每一行
for k in $all_text
#开始循环
do
#取出id
id=`echo $k|awk -F'_' '{print $1}'`
#判断这个id有没有在newfile中