如果 想利用 shell 從 json 數據 中 解析出某個字段, 可以 利用 正則匹配, 比如 想 解析出 "spanId":"8461203268866670975" 這個字段,可以利用如下 shell 腳本:
grep -Po '"spanId":".*?"' | grep -Po '\d+'
比如文件test1.txt中的其中一條數據:

{"uid":"300","timeStamp":1469758852856,"albumId":707,"trackId":6825,"feedbackSource":"","reasonList":["wt","dl","bc","ba","bc"],"props":{"rec_level":"ALBUM"}}
我想抽取出 albumId 后面的數字 707,則
grep -Po '(?<=albumId":)[0-9]+' test1.txt
獲取下面文本[后面的數字23或,后面的數字34
10 [23|0.1|45,34|0.2|67]
grep -Po '(?<=\[)[0-9]+|(?<=,)[0-9]+'
題目:計算兩個字符串文本兩個字段相同的行數
思路:
1. 設文本A, 文本B,其中 A 的行數 小於 B 的行數 2. 先用 cat , grep 等基本命令對文本 A 進行初步篩選出 文本A1 3. 利用 grep -Po 從 文本A1中只選取特定字段到文本A2 4. while read line; do cat B | grep \"id\":\"$line\" >> rec.txt; done < A2 其中 id 是文本B的特定字段 5. 通過計算文本rec.txt的行數,即可計算出題目的結果