【发布时间】:2013-03-06 14:17:34
【问题描述】:
我试图逐行删除一些重复的字符串。例如:
A {id: "x" p {id: "vcv" v: "i4"} on:taf"}
A {id: "y" p {id: "wse" v: "i4"} on:ue"}
A {id: "z" p {id: "das" v: "i4"} on:tade"}
A {id: "x" p {id: "da" v: "i4"} on:faer"}
A {id: "y" p {id: "werw" v: "i4"} on:asee"}
A {id: "y" p {id: "werw" v: "i4"} on:asee"}
输出应该是没有重复A_id的,这意味着输出应该是:
A {id: "x" p {id: "vcv" v: "i4"} on:taf"}
A {id: "y" p {id: "wse" v: "i4"} on:ue"}
A {id: "z" p {id: "das" v: "i4"} on:tade"}
我遇到的问题是我不知道如何排序并仅使用子字符串使其唯一。 我尝试使用:
cat input.txt | grep 'A\s\{id:\s\"[^;]*\sp\s\{id:' | sort -u > output.txt
但它不会删除重复的子字符串,而只会删除与其他字符串完全相同的行。所以它就像它只是被删除:
A {id: "y" p {id: "werw" v: "i4"} on:asee"}
与最后两行相同,但没有删除:
A {id: "y" p {id: "wse" v: "i4"} on:ue"}
id 重复但内容不同。
【问题讨论】:
标签: regex command-line duplicates unique