2013-08-22 54 views
1

现在我生成一个文本文件,band的值存储为\ t value1 value2val3。如何使用制表符分隔符排序文件

而且我想这个文本文件排序为数值1

sort a.txt -o a.txt1 

,并发现它发生错误

google 1 1 
google 1 2 
google 1 3 
=google 1 4 
google 1 3 

发现=插入谷歌google.Why之间的事情发生,所以stranged。

我试过sort a.txt -t $'\t' -k 1 -o a.txt1但它有同样的问题。

+0

目前尚不清楚你的输入和什么用的$“\ t” – Himanshu

+0

@Himanshu:'$'\ t''是指定在猛砸标签的一种方式。见例如http://wiki.bash-hackers.org/syntax/quoting#ansi_c_like_strings – tripleee

+0

谢谢@tripleee和我以为我知道很多bash :) – Himanshu

回答

2

您的语言环境显然指定在排序时应忽略=。尝试用LC_ALL=C sort替换sort。这将运行sort,其中环境变量LC_ALL临时设置为C,这将覆盖您的区域设置(在任何区域设置感知的程序中)为“传统”/传统区域设置无关的“C”区域设置。

+0

@ tripleeeThanks,现在它工作时使用LC_ALL = C排序 – liumilan

+0

谢谢,欢迎来到堆栈溢出。请考虑[接受答案](http://meta.stackoverflow.com/help/someone-answers)。 – tripleee

0
sort -n x.txt 
google 1 1 
google 1 2 
google 1 3 
google 1 3 
=google 1 4 
相关问题