파일을 첫 번째 열로 정렬하고 싶지만 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