Percorra o arquivo csv e salve todos os elementos exclusivos de uma coluna em uma matriz

Percorra o arquivo csv e salve todos os elementos exclusivos de uma coluna em uma matriz

Estou analisando um arquivo CSV muito grande e criando vários subarquivos com seu conteúdo de acordo com o valor da primeira coluna. Até agora, o que fiz foi declarar manualmente um array:

declare -a arr=(
"Value 1"
"Value 2"
)

e então percorro esse array e crio os arquivos mini-csv com as informações de meu interesse, alterando também o nome dos arquivos csv de saída para trocar espaços com sublinhados:

for i in "${arr[@]}"
do 
    NAME=${i// /_}
    echo $header > "$outputpath/$NAME.csv"
    grep "^$i," "$fixed_file" | cut -d ',' -f 4,6 >> "$outputpath/$NAME.csv"
done

Existe uma maneira de automatizar a primeira etapa também? ou seja, posso percorrer o arquivo csv original e preencher arr com todos os valores exclusivos de sua coluna 1?

Responder1

Mão Única:

declare -A arr
while IFS=, read -r one rest
do
  arr[$one]=1
done < input.csv

Em seguida, passe pelas teclas:

for i in "${!arr[@]}"
do
  #...
done

informação relacionada