我有一个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脚本解决这个问题。
由于
答案 0 :(得分:0)
正如其他人已经解释过的那样,Bash不是解决问题的理想工具。
如果您想坚持自己的方法,可以对文件进行反向排序,然后指示uniq
仅比较第一个 n 字符,例如:
sort -r testfile | uniq -w 60
有关详细信息,请参阅uniq(1)
手册页。
答案 1 :(得分:0)
tac items.json |排序| uniq -w 150&gt; tacsorteduniq.json