Dividindo e renomeando um arquivo

2

Eu preciso dividir um arquivo com um formato específico e renomeá-lo mais tarde ...

A divisão funciona bem, mas não consigo referir o $ arquivo- $ cada dentro do meu comando awk?

Alguma dica?

for file in *.csv
do
  split -n 3 -d -a 2 "$file" "$file--"
  for each in $(seq -w 2 10)
  do
        echo $file--$each

  awk '{filename = $file--$each ".txt"  ; print >> filename}' $file--$each
  done
done
    
por user1050619 25.04.2014 / 23:16

1 resposta

2

As variáveis do shell não são expandidas dentro de aspas simples. A maneira correta de lidar com isso é passar variáveis awk na linha de comando

for file in *.csv
do
  split -n 3 -d -a 2 "$file" "$file--"
  for each in $(seq -w 2 10)
  do
        echo $file--$each

  awk -v filestem="$file"--"$each" '{filename = filestem".txt";
  print >> filename}' $file--$each
  done
done
    
por 25.04.2014 / 23:23