咱们做为一个程序员,常常在开发中须要处理一些日志文件,awk是一个很好处理文件字符串的命令,这块记录一下!程序员
使用场景:批量请求一个url地址,根据awk截取的json做为请求参数处理数据,主要涉及到截取请求参数awk使用以及curl访问某一个路径。json
一、 截取一个包含文本keyword的字符串,输出到一个log日志文件bash
cat my.log|grep -B 1 'keyword' > 1.logapp
二、去掉无用的文本,只保留json格式的请求数据curl
cat 1.log |awk -F '"' '{print $5}' > needData.txturl
三、经过txt文件改成json文件,为请求数据作准备,文件名称为:get_message_json.sh.net
#!/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
四、能够根据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/3124187code