我希望得到您关于如何对大文件(数百万行或数百万行)进行子集化的建议/帮助。
例如,
(1) 我有大文件(数百万行,制表符分隔)。我想要此文件的一个子集,其中只有从 10000 到 100000 的行。
(2) 我有大文件(数百万列,制表符分隔)。我想要此文件的一个子集,其中只有从 10000 到 100000 的列。
我知道有 head、tail、cut、split 和 awk 或 sed 等工具。我可以用它们做简单的子集化。但是,我不知道该怎么做。
您能给点建议吗?提前致谢。
最佳答案
过滤行很容易,例如使用 AWK:
cat largefile | awk 'NR >= 10000 && NR <= 100000 { print }'
使用 CUT 可以更轻松地过滤列:
cat largefile | cut -d '\t' -f 10000-100000
正如 Rahul Dravid 所提到的,cat
在这里不是必须的,并且正如 Zsolt Botykai 所补充的那样,您可以使用以下方法提高性能:
awk 'NR > 100000 { exit } NR >= 10000 && NR <= 100000' largefile
cut -d '\t' -f 10000-100000 largefile
关于linux - 如何对文件进行子集化 - 选择多个行或列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491532/