Como eu penso um pouco, você finalmente precisa da saída abaixo, que este comando faz:
awk -F, '{print >$1"_"$7".csv"}' infile
Eu tenho um arquivo csv que tem várias colunas. Aqui está um exemplo do que eu estou preso. Abaixo estão os dados de entrada de amostra:
9,-54,18205,28,0,1517400128,2353,0,0,0,0,551
9,-54,18207,28,0,1517400128,2354,0,0,0,0,551
10,-48,18216,28,0,1517400128,2353,0,0,0,0,551
9,-54,18217,28,0,1517400128,2356,0,0,0,0,551
13,-54,18223,28,0,1517400128,2353,0,0,0,0,551
Eu quero dividir os dados com base em valores exclusivos da coluna 1 e depois dividir os resultados com base no valor exclusivo da coluna 7. Atualmente eu estou tentando conseguir isso primeiro dividindo a folha com base na coluna 1, então eu estou lendo os arquivos csv resultantes do diretório, armazenando-o em um arquivo txt de saída e, em seguida, ainda tomando os valores do arquivo txt de saída como variáveis e executando um script awk para dividir os arquivos ainda mais. Mas de alguma forma a segunda divisão não está acontecendo conforme a expectativa. Abaixo está o que eu fiz até agora:
awk -F\, '{print > $7".csv"}' $dir/../testfile.csv
ls -R | grep "\.csv$" > testfile.txt
while IFS= read -r a \n b \n c; do
awk -F\, '{print > $1".csv"}' $dir/$a
awk -F\, '{print > $1".csv"}' $dir/$b
awk -F\, '{print > $1".csv"}' $dir/$c
done < testfile.txt
Por favor me ajude a identificar o problema aqui. Isso tem que estar no shell.
Tags text-processing awk split