awk文本處理-完美處理

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

相關文章
相關標籤/搜索