我正在尝试根据第四列对此文件进行排序。我希望文件根据第四列的值重新排序。
档案:
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>
但是我得到非法的变量名称错误。有人可以帮我吗?
答案 0 :(得分:45)
要对第四列进行排序,请仅使用-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'
的错误,请确保您的shell是bash。也许您在脚本顶部缺少#!/bin/bash
?
答案 1 :(得分:3)
我相信你的命令中有一个错误的$
。
尝试:
sort -t\t -nk4