디렉토리의 두 열을 기반으로 여러 csv 파일 정렬

디렉토리의 두 열을 기반으로 여러 csv 파일 정렬

.csv이라는 디렉터리에 여러 개의 파일이 있습니다 mydirectory. 먼저 bash/awk/sed 명령을 사용하여 열을 기준으로 LeftChr모든 파일을 정렬한 RightChr다음 열을 기준으로 result.

>Id LeftChr LeftPosition    LeftStrand  LeftLength  RightChr    RightPosition   RightStrand
1979    chr1    825881  -   252 chr2    5726723 -
5480    chr2    826313  +   444 chr2    5727501 +
5492    chr5    869527  +   698 chr2    870339  +
1980    chr2    1584550 -   263 chr1    1651034 -
5491    chr14   1685863 +   148 chr1    1686679 +
5490    chr1    1691382 +   190 chr1    1693020 +

결과

>Id LeftChr LeftPosition    LeftStrand  LeftLength  RightChr   RightPosition   RightStrand
     5490   chr1    1691382 +   190 chr1    1693020 +
     1979   chr1    825881  -   252 chr2    5726723 -
     1980   chr2    1584550 -   263 chr1    1651034 -
     5480   chr2    826313  +   444 chr2    5727501 +
     5492   chr5    869527  +   698 chr2    870339  +
     5491   chr14   1685863 +   148 chr1    1686679 +

답변1

기본적으로 "sort -k"만 있으면 됩니다.

for f in *.csv; do
   # output of first line
   head -1 $f
   # output of any but first line, then sort after 2. then 6. column
   tail -n +2 $f | sort -k 2,6
done

관련 정보