營(yíng)銷網(wǎng)站制作服務(wù)熱線seo顧問服
背景:在指定目錄下,該目錄下有上百個(gè)日志文件,這些文件以.log結(jié)尾
需求:遍歷這些日志文件,對(duì)每個(gè)日志文件進(jìn)行g(shù)rep篩選,篩選出包含
name=xxx
和"server_port":"8088"
的內(nèi)容,并寫入到out.log文件中,這些日志文件順序篩選,后面的日志文件追加到out.log文件中
編輯一個(gè)腳本:
vim process_logs.sh
腳本內(nèi)容如下:
#!/bin/bashfor logfile in /var/log/*.log; dofilename=$(basename "$logfile")echo "$filename" "--->filter start" >> ./out.loggrep 'name=xxx' "$logfile" | grep '"server_port":"8088"' >> ./out.logecho "$filename" "--->filter end" >> ./out.logecho >> ./out.log
done
注釋:
#!/bin/bash# 遍歷log目錄下的所有日志文件
for logfile in /var/log/*.log; do# 使用basename獲取文件名filename=$(basename "$logfile")# 寫入指定字符串echo "$filename" "--->filter start" >> ./out.log# 使用grep篩選包含"name=xxx"并且"server_port":"8088"的內(nèi)容并追加到out.log文件中grep 'name=xxx' "$logfile" | grep '"server_port":"8088"' >> ./out.log# 寫入指定字符串echo "$filename" "--->filter end" >> ./out.log# 寫入空行echo >> ./out.log
done
執(zhí)行:
bash process_logs.sh