我有一个包含以下记录的大型CSV文件:
60,1572236,3,58394247,\N,\N,\N,1925720,\N,2011-11-25 12:55:53,2011-11-25 12:55:53
61,2875109,4,58394209,1234,\N,4025175,\N,\N,2011-11-25 12:55:53,2011-11-25 12:55:53
62,2875109,4,58394209,\N,\N,\N,9860904,\N,2011-11-25 12:55:53,2011-11-25 12:55:53
63,2875109,5,58394209,8756,\N,\N,8615157,\N,2011-11-25 12:55:53,2011-11-25 12:55:53
64,2686696,3,58394211,\N,\N,59512,\N,\N,2011-11-25 12:55:53,2011-11-25 12:55:53
65,2686696,3,58394211,\N,\N,4025893,\N,\N,2011-11-25 12:55:53,2011-11-25 12:55:53
我想将文件拆分为2个文件,拆分的条件将是第5列中的值,一个文件将获得该列中没有值的行(\ N)以及该列中具有值的列将转到另一个文件。
在上面的示例中:行2,4将转到一个文件,其余行将转到另一个文件。
如何在linux中做到这一点?
答案 0 :(得分:0)
您可以使用awk
:
$ awk -F, '$5=="\\N"{print >"file1.csv"; next}; {print >"file2.csv"}' data.csv
file1.csv
将包含\N
file2.csv
将包含其他人