I have files with segments like this:
R_byK3rjAyABPDuil
2007 UT H.B. 437
R_27mvt5Z0CytgL2Q
2007 UT H.B. 437
2007 UT H.B. 437
2007 UT H.B. 437
R_xGf2zqaMuPgAGn7
I don't want to sort or unique the entire file, only to make each n-tuple unique, like so:
R_byK3rjAyABPDuil
2007 UT H.B. 437
R_27mvt5Z0CytgL2Q
2007 UT H.B. 437
R_xGf2zqaMuPgAGn7
Any help would be great. I'm hoping there is a somewhat simple sed/awk hack for this. Thanks.
答案 0 :(得分:2)
$ uniq file
R_byK3rjAyABPDuil
2007 UT H.B. 437
R_27mvt5Z0CytgL2Q
2007 UT H.B. 437
R_xGf2zqaMuPgAGn7
我确信这已经被多次询问/回答了。如果您只想获取整个文件中的唯一行而不进行排序
$ awk '!a[$0]++' file
R_byK3rjAyABPDuil
2007 UT H.B. 437
R_27mvt5Z0CytgL2Q
R_xGf2zqaMuPgAGn7
答案 1 :(得分:2)
使用GNU grep:
grep -Poz 'R.*(\n[^R].*)?' file
输出:
R_byK3rjAyABPDuil 2007 UT H.B. 437 R_27mvt5Z0CytgL2Q 2007 UT H.B. 437 R_xGf2zqaMuPgAGn7
来自man grep
:
-P
:将PATTERN解释为Perl正则表达式。
-o
:仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出行上。
-z
:将输入视为一组行,每行以零字节(ASCII NUL字符)而不是换行符结束