【发布时间】:2016-07-05 11:58:35
【问题描述】:
我有一个包含 3972192 行的文件,每行分隔两个值选项卡。我想将每 47288 行分成一个新列(这来自 84 列)。我阅读了这些其他问题 (Put every N rows of input into a new column),其中它的作用与我想要的相同,但使用 awk 我得到了:
awk: program limit exceeded: maximum number of fields size=32767
如果我用 pr 来做,分隔列的限制是 36。
为此,我首先使用 awk 选择了第 2 列:
awk '{print $2}' input_file>values_file
为了获取我所做的第一列值:
awk '{print $1}' input_file>headers_file
head -n 47288 headers_file >headers_file2
获得这两个文件后,我会将它们与粘贴功能放在一起:
paste -d values_file headers_file2 >Desired_output
示例: 输入:
-Line1: ABCD 12
-Line2: ASDF 3435
...
-Line47288: QWER 345466
-Line47289: ABCD 456
...
-Line94576: QWER 25
...
-Line3972192 QWER 436
想要的输出:
- Line1: ABCD 12 456 ....
...
- Line47288: QWER 345466 25 .... 436
有什么建议吗?提前致谢,
【问题讨论】:
-
你用 gawk 试过了吗?
-
请解释一下您是如何计算 84 列的数量的。
-
我知道有 84 列,因为这是分析 84 个样本的步骤。