咱們做爲一個程序員,常常在開發中須要處理一些日誌文件,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