【发布时间】:2016-09-20 15:59:54
【问题描述】:
我有一个包含多列的测试文件。我想根据包含数值的第 8 列进行排序,然后抓取前 10% 的行并将它们导出到一个新文件。
我更喜欢在 bash 中执行此操作。我知道我可以使用 sort -k8 -n 进行排序,但我一直无法完成第二个任务。
输出:
如果我的文本文件有 1000 行,我只想要前 100 行。
文件以制表符分隔。
谢谢!
【问题讨论】:
-
你试过用谷歌搜索什么?似乎您需要使用搜索词“bash get first lines of file”、“bash count lines in a file”、“bash 除整数”
-
如果您知道您需要的行数(目前为 100 行),那么为什么不简单地使用:
head -n 100? -
我已经尝试查看各种谷歌搜索。有很多方法可以抓取前 N 行,但我想要前 N % 的行。 @KristoMägi 这是一个例子,我的管道运行数百个样本并为每个样本调用“绑定站点”,并且数字总是有很大不同,这就是我试图获得前 10% 的原因。
-
如果不提前知道总行数,则需要通读整个文件以确定它,然后才能计算其中的 10%。
sort不提供该信息。 -
是的,我知道我需要提前确定有多少行......使用
wc -l相当简单,我不知道该怎么做就是管道所有这些命令一起得到我正在寻找的输出。我没有成功。
标签: bash