如何使用cygwin sort对第n列上的制表符分隔文件进行排序?

Nik*_*hil 9 sorting cygwin

我有一个巨大的制表符分隔文件,我想在其第二列上排序.我需要使用制表符作为cygwin排序中的字段分隔符.所以我需要这样的东西:

sort -t \t -k 2,2 in.txt > out.txt
Run Code Online (Sandbox Code Playgroud)

但命令提示符按字面计算'\ t'而不是制表符.请注意,我需要在运行Cygwin的Windows机器上执行此操作.变化如

sort -t "\t"
sort -t \"\t\"
Run Code Online (Sandbox Code Playgroud)

不起作用,也没有把它放在cmd文件中,而实际的标签代替上面的\ t.

编辑:使用DOS shell或Cygwin bash shell的解决方案很好.

PEZ*_*PEZ 14

在我的机器上(Mac bash提示符,GNU排序......)这适用:

sort -t '   ' -k 2,2 in.txt > out.txt
Run Code Online (Sandbox Code Playgroud)

(引号之间的"真实"标签.)

要获取选项卡,我键入CTRL-V,TAB(CTRL-V后跟TAB).

编辑:我现在已经在cygwin提示符的Windows机器上测试它,它在那里工作相同(如我所料,bash是bash).


Joa*_*org 12

您需要在\ t前面添加一个$符号来打开字符串插值,因此实际上该选项卡会被发送到sort.这适用于任何终端:

sort -t $'\t' -k 2,2 in.txt > out.txt
Run Code Online (Sandbox Code Playgroud)

  • 我没有在"任何终端"中包含windows命令提示符=) (4认同)