Bash - 첫 번째 문자가 아닌 기준으로 정렬

Bash - 첫 번째 문자가 아닌 기준으로 정렬

파일을 첫 번째 열로 정렬하고 싶지만 5자부터 정렬을 시작해야 합니다. 어떻게 해야 합니까?

내 파일:

"TTTTCTTACA"            1       1
"TTTTCTTACC"                    1
"TTTTCTTACT"    1       1
"TTTTCTTAGC"    1
"TTTTCTTATT"                    2
"TTTTCTTCAA"    1               1       1
"TTTTCTTCAG"    1               2       1
"TTTTCTTCAT"            1       2       2
"TTTTCTTCCT"                            2
"TTTTCTTCGG"                    2       2
"TTTTCTTCTA"                            1
"TTTTCTTCTG"            1
"TTTTCTTCTT"    1                       2
"TTTTCTTGAA"            1
"TTTTCTTGCT"    1               1       1
"TTTTCTTTAA"    1
"TTTTCTTTAG"            1       1
"TTTTCTTTCT"    1
"TTTTCTTTGC"    1
"TTTTCTTTGG"            1       1
"TTTTCTTTGT"    1       1       2       1
"TTTTCTTTTA"    1

난 노력했다:

sort -k1,1 file | uniq -s 6 -w 5 

물론 작동하지 않습니다. 어쩌면 정렬에는 플래그가 몇 개 있지만 찾지 못했습니다. 어떤 생각이 있나요?

답변1

tl;dr

sort -k1.5 file | uniq -s 6 -w 5


설명

내 종류는 GNU coreutils 8.22입니다. 내 정렬의 맨페이지에는 다음이 표시됩니다.

KEYDEF is F[.C][OPTS][,F[.C][OPTS]] for start and stop position, where F is a field number and  C
       a  character  position  in  the  field;  both are origin 1, and the stop position defaults to the
       line's end.

따라서 현재 정렬 명령을 사용하면 sort -k1,1 file첫 번째 단어부터 첫 번째 단어까지 정렬로 사용됩니다.

당신이 원하는 것은 (어쨌든 정렬 명령에 대해) :

sort -k1.5 file | uniq -s 6 -w 5

이렇게 하면 원하는 첫 번째 단어의 다섯 번째 문자가 사용됩니다.

답변2

$sort -k2 파일

"TTTTCTTCTA"                            1
"TTTTCTTCCT"                            2
"TTTTCTTACC"                    1
"TTTTCTTATT"                    2
"TTTTCTTCGG"                    2       2
"TTTTCTTCTG"            1
"TTTTCTTGAA"            1
"TTTTCTTACA"            1       1
"TTTTCTTTAG"            1       1
"TTTTCTTTGG"            1       1
"TTTTCTTCAT"            1       2       2
"TTTTCTTAGC"    1
"TTTTCTTTAA"    1
"TTTTCTTTCT"    1
"TTTTCTTTGC"    1
"TTTTCTTTTA"    1
"TTTTCTTCTT"    1                       2
"TTTTCTTCAA"    1               1       1
"TTTTCTTGCT"    1               1       1
"TTTTCTTCAG"    1               2       1
"TTTTCTTACT"    1       1
"TTTTCTTTGT"    1       1       2       1

$sort -k2 파일 | 유니크 -f 1

"TTTTCTTCTA"                            1
"TTTTCTTCCT"                            2
"TTTTCTTACC"                    1
"TTTTCTTATT"                    2
"TTTTCTTCGG"                    2       2
"TTTTCTTCTG"            1
"TTTTCTTACA"            1       1
"TTTTCTTCAT"            1       2       2
"TTTTCTTAGC"    1
"TTTTCTTCTT"    1                       2
"TTTTCTTCAA"    1               1       1
"TTTTCTTCAG"    1               2       1
"TTTTCTTACT"    1       1
"TTTTCTTTGT"    1       1       2       1

관련 정보