我有一个巨大的 .txt 文件,更准确地说是 300GB,我想将第一列中所有与我的模式匹配的不同字符串放入不同的 .txt 文件中。

awk '{print $1}' file_name | grep -o '/ns/.*' | awk '!seen[$0]++' > test1.txt

这是我尝试过的,据我所知它工作正常,但问题是一段时间后我收到以下错误:
awk: program limit exceeded: maximum number of fields size=32767
    FILENAME="file_name" FNR=117897124 NR=117897124

有什么建议么?

最佳答案

错误消息告诉您:

line(117897124) has to many fields (>32767).

你最好检查一下:
sed -n '117897124{p;q}' file_name

使用 cut 提取第一列:
cut -d ' ' -f 1 < file_name | ...

注意 :您可以将 ' ' 更改为任何字段分隔符。默认值为 $'\t'

10-08 02:39