【发布时间】:2015-03-04 21:32:53
【问题描述】:
我有一个 json 文件,我有几乎重复内容的行(每行添加一个数组值),但我只需要最后一行,包含所有数组值。 (下例中的第 3 行)
我想遍历文件并检查每行的前 100 个字符(这些在重复项中是相同的),然后只保留一组(几乎)重复项的最后(完整)行。
几乎是很重要的;例如,我不能使用 uniq,因为这些行不是 100% 唯一的(请参阅在 media_url 中添加的元素)
例子:
{"project": {"bodytext": ["long text"], "media": [{"media_url": ["files//1"]}]}, ]},
{"project": {"bodytext": ["long text"], "media": [{"media_url": ["files//1"],["files//2"]}]}, ]},
{"project": {"bodytext": ["long text"], "media": [{"media_url": ["files//1"],["files//2"],["files//3"]}]}, ]}, <- only keep this line
任何帮助将不胜感激。我更喜欢用 bash 脚本来解决这个问题。
谢谢
【问题讨论】:
-
我不认为
bash是合适的工具。使用真正的编程语言(如python),将json解析为一些数据结构,比较数据结构并丢弃那些子集。 -
这里没有足够的信息来考虑在 shell 中制作解决方案。如果它像您说明的那样简单,
tail -1 jsonFile不会成功吗?如果没有,您如何添加一些步骤以便我们可以复制您的问题数据?祝你好运。
标签: bash