awk文本处理-完美处理

孤街醉人 提交于 2020-08-06 07:54:53

我们作为一个程序员,经常在开发中需要处理一些日志文件,awk是一个很好处理文件字符串的命令,这块记录一下!

使用场景:批量请求一个url地址,根据awk截取的json作为请求参数处理数据,主要涉及到截取请求参数awk使用以及curl访问某一个路径。

1、 截取一个包含文本keyword的字符串,输出到一个log日志文件

cat my.log|grep -B 1 'keyword' > 1.log

2、去掉无用的文本,只保留json格式的请求数据

cat 1.log |awk -F '"' '{print $5}' > needData.txt

3、通过txt文件改为json文件,为请求数据做准备,文件名称为:get_message_json.sh

#!/bin/sh

dir="./log"
json_dir="./json"
for file_a in ${dir}/*
do  
    log_file_name=`basename $file_a`
    extension="${log_file_name##*.}"
    if [ "$extension" == "txt" ];then
        json_file_name="${log_file_name}.json"
    awk -F '接收消息:' '{print $2}' ${dir}/$log_file_name > "${json_dir}/${json_file_name}"
    fi
done

4、可以根据request.sh脚本运行,通过访问json文件批量请求url地址

#!/bin/sh
json_dir="./json"
for a_json_file in ${json_dir}/*
do
    start_time=$(date +%Y-%m-%d\ %H:%M:%S)
    echo -e "${start_time} \t ${a_json_file} started!"
    while read line
    do
    curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d $line http://localhost:8089/analysisMessage/testDeviceMessage -s
    done < ${a_json_file}
    end_time=$(date +%Y-%m-%d\ %H:%M:%S)
    echo -e "${end_time} \t ${a_json_file} finished!"
    rm -f ${a_json_file}
done
echo "Request has been finished."

awk使用转载: https://my.oschina.net/hengbao666/blog/3124187

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!