当前位置: 首页 > 面试题库 >

排序制表符分隔的文件

琴镜
2023-03-14
问题内容

我有以下格式的数据:

foo<tab>1.00<space>1.33<space>2.00<tab>3

现在,我尝试根据最后一个字段对文件进行递减排序。我尝试了以下命令,但是没有按照我们的预期排序。

$ sort -k3nr file.txt  # apparently this sort by space as delimiter

$ sort -t"\t" -k3nr file.txt
  sort: multi-character tab `\\t'

$ sort -t "`/bin/echo '\t'`" -k3,3nr file.txt
  sort: multi-character tab `\\t'

什么是正确的方法?

这是样本数据。


问题答案:

使用 bash ,可以达到目的:

$ sort -t$'\t' -k3 -nr file.txt

注意单引号字符串前面的美元符号。您可以在 bash
手册页
的ANSI-
C报价部分中
阅读有关它的内容。



 类似资料:
  • 问题内容: 我正在尝试根据第四列对该文件进行排序。我希望根据第四列的值对文件重新排序。 文件: 我想要这样排序: 我尝试了以下命令: 但是我得到了非法的变量名错误。有人可以帮我吗? 问题答案: 要对第四列进行排序,请仅使用选择器。 您可能还想更自然地对数字排序。例如,屈服而不是(字典顺序)。 如果您收到有关的错误,请确保您的外壳是bash。也许您缺少脚本的顶部?

  • 目前,我正在逐行读取由制表符分隔的文件,将每行中的项目拆分,并通过硬编码值50查找由50个项目组成的制表符分隔的行,然后创建数据表。 问题:以制表符分隔的源文件在拆分后有时有50或53项以制表符分隔的行。需要直接读取以制表符分隔的源文件中具有最大制表符分隔符的行,然后继续我的逻辑。 我的C代码

  • 问题内容: 我想将标题添加到制表符分隔的文件中,但是我不确定如何在Linux中一行执行该操作。 让我们说我的文件是: 现在我想添加一个标头,上面写着: 我将如何在linux的一行中做到这一点?我对awk,sed,cat等没问题,但是对perl一点都不熟悉。 问题答案: 没有像“ append”运算符这样的“ prepend”运算符,但是您可以将标头写入临时文件,然后将文件内容复制到临时文件中,然后

  • 我在使用Pandas读取选项卡分隔的文件时遇到问题。 所有单元格值都有双引号,但对于某些行,有一个额外的双引号打断了整个过程。例如: 我得到的错误是:错误标记数据。C错误:第8355行预期有31个字段,SAW58 我使用的代码是: 它适用于其余文件,但不适用于出现额外双引号的文件。

  • 问题内容: 我目前有一个CSV文件,当在Excel中打开该文件时,共有5列。仅A和C列对我而言没有任何意义,其余列中的数据无关紧要。 从第8行开始,然后以7的倍数工作(即第8、15、22、29、36行等),我希望使用Python 2.7创建一个字典,其中包含来自这些字段的信息。A列中的数据将是密钥(6位整数),C列中的数据将是密钥的相应值。我试图在下面强调这一点,但格式不是最好的: 如上所述,我正

  • 我试图实现的是从Excel工作表(保存在Txt中,制表符分隔)中逐行读取数据,并且每个单独的列都是我想要存储在数组中的不同数据。 我尝试了不同的方法..我甚至从网上下载了CSVReader class,但它不能用。至少这次它读的是真实的人物,而不是讽刺。 我现在的版本是使用bufferedReader和String Tokenizer。但它没有正确阅读。 下面是代码: for(int i =0;