首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cygwin排序对第n列上的制表符分隔文件进行排序?

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

Stack Overflow用户
提问于 2009-01-09 00:38:57
回答 5查看 13.4K关注 0票数 10

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

代码语言:javascript
复制
sort -t \t -k 2,2 in.txt > out.txt

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

代码语言:javascript
复制
sort -t "\t"
sort -t \"\t\"

不起作用,也不会把它放在cmd文件中,用一个实际的选项卡来代替上面的\t。

编辑:使用DOS shell或Cygwin bash shell的解决方案都可以。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-09 01:06:40

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

代码语言:javascript
复制
sort -t '   ' -k 2,2 in.txt > out.txt

(引号之间有一个“实际”制表符。)

要获得该选项卡,我键入CTRL-V,tab (CTRL-V后跟TAB)。

编辑:我现在已经在Windows机器上通过cygwin提示符对其进行了测试,它在那里也能正常工作(正如我所料,bash就是bash)。

票数 14
EN

Stack Overflow用户

发布于 2009-07-17 12:14:37

您需要在\t前面添加一个$符号来打开字符串插值,这样制表符实际上会被发送到排序。这应该可以在任何终端上工作:

代码语言:javascript
复制
sort -t $'\t' -k 2,2 in.txt > out.txt
票数 13
EN

Stack Overflow用户

发布于 2011-04-02 16:00:18

在Windows命令提示符中,我找到的最简单的解决方案是先禁用制表符补全,方法是:

代码语言:javascript
复制
cmd /f:off

然后,您可以键入文字制表符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/426647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档