gpt4 book ai didi

linux - 基于正则表达式对大文件进行分块 (LInux)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:50 30 4
gpt4 key购买 nike

我有一个很大的文本文件,我想根据列的不同值将它分成较小的文件,列用逗号分隔(它是一个 csv 文件)并且有很多不同的值:

例如

1012739937,2006-11-28,d_02245211
1012739937,2006-11-28,d_02238545
1012739937,2006-11-28,d_02236564
1012739937,2006-11-28,d_01918338
1012739937,2006-11-28,d_02148765
1012739937,2006-11-28,d_00868949
1012739937,2006-11-28,d_01908448
1012740478,1998-06-26,d_01913689
1012740478,1998-06-26,i_4869
1012740478,1998-06-26,d_02174766

我想将文件分成更小的文件,这样每个文件都包含属于一年的记录(一个用于 2006 年的记录,一个用于 1998 年的记录,等等)

(这里我们可能有有限的年数,但我想用特定列的更多不同值来做同样的事情)

最佳答案

你可以使用 awk:

awk -F, '{split($2,d,"-");print > d[1]}' file

解释:

-F,              tells awk that input fields are separated by ','

split($2,d,"-") splits the second column (the date) by '-'
and puts the bits into the array 'd'

print > d[1] prints the whole input line into a file named after the year

关于linux - 基于正则表达式对大文件进行分块 (LInux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17252668/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com