I have a test1.csv file with two columns
group,email
group1@email.com,user1@email.com
group1@email.com,user2@email.com
group1@email.com,user3@email.com
group1@email.com,user4@email.com
group2@email.com,user5@email.com
group2@email.com,user6@email.com
group3@email.com,user7@email.com
group3@email.com,user8@email.com
group3@email.com,user9@email.com
My goal is to create separate text files depending on the value of the first column.
For example:
the first file named group1@email.com and containing
user1@email.com
user2@email.com
user3@email.com
user4@email.com
the first file named group2@email.com and containing
user5@email.como
user6@email.com
and so on.
I have this awk command
awk -F"," 'NR==1{header=$0}NR>2&&!a[$1]++{print header > (""$1"")}NR>2{print > (""$1"")}' test1.csv
but the result is not really what I'm looking for, although the naming of the files is correct:
group,email
group1@email.com,user2@email.com
group1@email.com,user3@email.com
group1@email.com,user4@email.com
I'm also getting an 'Awk: too many open files' whenever the .csv file is too big
Any help is appreciated. Also looking into different languages such as sed or grep