このファイルを4番目の列に基づいてソートしようとしています。 4列目の値に基づいてファイルを並べ替えたい。
ファイル:
2 1:103496792:A 0 103496792
3 1:103544434:A 0 103544434
4 1:103548497:A 0 103548497
1 1:10363487:T 0 10363487
このように並べ替えたい:
1 1:10363487:T 0 10363487
2 1:103496792:A 0 103496792
3 1:103544434:A 0 103544434
4 1:103548497:A 0 103548497
私はこのコマンドを試しました:
sort -t$'\t' -k1,1 -k2,2 -k3,3 -k 4,4 <filename>
しかし、無効な変数名エラーが発生します。誰かがこれで私を助けることができますか?
4列目でソートするには、-k 4,4
セレクターのみを使用します。
sort -t $'\t' -k 4,4 <filename>
数値をより自然にソートする-V
も必要な場合があります。たとえば、1 2 10
(辞書式順序)ではなく1 10 2
を生成します。
sort -t $'\t' -k 4,4 -V <filename>
$'\t'
に関するエラーが発生する場合は、シェルがbashであることを確認してください。おそらく、スクリプトの上部に#!/bin/bash
がありませんか?
間違いがあると思います$
コマンドで。
試してください:
sort -t\t -nk4