Você basicamente só precisa de '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
Eu tenho vários arquivos .csv
em um diretório chamado mydirectory
. Eu quero classificar todos esses arquivos usando um comando bash / awk / sed primeiro baseado na coluna LeftChr
e depois na coluna RightChr
e obter o 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 +
resultado
>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 +