於 Linux 使用 awk 要拉第42行的資料,要怎麼做?
- cat filename | awk 'NR==42{print $0; exit}'
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
於 Linux 使用 awk 要拉第42行的資料,要怎麼做?
Linux 要垂直抓資料,經常使用 awk,但是想要判斷某個欄位符合條件後,才把資料印出來,可以怎麼做呢?
想把 Shell 環境變數抓進 AWK 的 Array,可以怎麼做呢?
Bash shell script 要印出 01、02、03.. 格式化的數字,可以怎麼做呢?
Shell script 可以使用 tr / sed 來完成~ 如果還要某個特定欄位來做,可以在搭配 cut 或 awk~
Linux 使用 AWK 來垂直取得資料,例如:
但是反過來,想要過濾掉某些欄位,剩下的全部印出來,該怎麼做呢?
使用 AWK Parse access.log,在某些特定條件會發生抓錯欄位的情況(若使用 空白 切割,沒使用 " 搭配切割,就容易抓錯欄位)
不過經常快速處理,都是使用空白切割即可,那要抓最後的欄位,比較簡單的方式就是一樣「空白切割」或「" 切割」,只是資料抓法是從後面往前抓。
所以要抓 access.log 倒數第二欄 和 第二欄,範例如下:
想抓超過 500ms 的網址(註:elapsed 並不是預設就有,需要另外加上)
AWK 想要計算平均值,遇到下述的錯誤訊息:
awk: program limit exceeded: maximum number of fields size=32767
要怎麼解決呢?
Linux 的 Bash Shell 很常會使用到 date 的命令,特別是用到備份、某些固定時間該做的處理等等,參數是哪些呢?
每次都是去 man date 來查看這個參數(因為會有大小寫不同,24hr、前面補0 等不同),在此紀錄最常用的年月日參數,並把跟 awk 搭配的方式列出來。
想要比對兩個檔案哪些資料是不同的(非 diff,相同資料就不需要再出現),Linux Bash shell 有方便的工具可以快速達成。