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的行数,即可计算出题目的结果
原文地址:https://www.cnblogs.com/lasclocker/p/5539467.html