重定向

此博客已停止更新,新址: http://blog.scicooking.net


2008年12月2日星期二

sort 排序 tab 分隔的文件

sort 排序,默认空白(空格,tab)都分开字段。想要在某列上排序 tab 分隔文件,这时候空格不应该作为分隔符。
例子文件:
example.txt:
A 2 1
B 1 0 341
C 3 231

假设排列 第3字段:
sort -k 3 -t "\t" example.txt 报错
sort -k 3 -t ‘\t’ example.txt 报错
sort -k 3 -t \t example.txt 没报错,可是结果不正确
解决方法:
TAB=`echo -e '\t'`; sort -k 3 -t "$TAB" example.txt
或者
sort -k 3 -t $'\t' example.txt
再或者,shell 里可以输入控制字符的,按 ctrl-v, 然后 tab 键就能输入 tab 字符,汗...
sort -k 3 -t "[ctrl-v]+[tab]" example.txt

没有评论: