日誌等大檔案定位並提取中間一部分文字

明月心~發表於2024-06-11

日誌等大檔案定位並提取中間一部分文字

  • 如tomcat檔案catalina.out
# 獲取內容最後一行行號 x
x=$(awk '/最後一行關鍵字/ {print NR; exit}' catalina.out)
# 將catalina.out前x行輸出為1.txt檔案
head -n $x catalina.out > 1.txt
# 獲取內容最前一行行號 y
y=$(awk '/最前一行關鍵字/ {print NR; exit}' 1.txt)
# 將1.txt前x行輸出為2.txt檔案 tail -n x-y 1.txt > 2.txt
awk "NR>=$x && NR<=$y" 1.txt > 2.txt


a=$(grep -m 1 -n '^17:00:0' 2.txt | cut -d: -f1)
head -n $a 2.txt > 3.txt
b=$(grep -m 1 -n '^16:00:0' 3.txt | cut -d: -f1)
awk "NR>=$a && NR<=$b" 3.txt > 4.txt

相關文章