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