shell 解析 json


如果 想利用 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"}}
View Code

我想抽取出 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的行數,即可計算出題目的結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM