Passando os parâmetros de substring para awk

3

Eu preciso dividir um arquivo e renomeá-lo de acordo com o comando awk. Estou tentando usar o comando substring e passar um parâmetro para o comando awk, mas ele falha.

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:2:5} '{filename = filestem; print >> filename}' $file--$each
  done
done
    
por user1050619 26.04.2014 / 23:06

1 resposta

4

Você tem duas opções

  1. Aplique a substring dentro do awk

    $ awk -v filestem="$file--$each" \
        '{filename = substr(filestem, 3, 6);print >> filename}' 
    
  2. Defina $file--$each para uma variável e depois para a variável

    $ filestem="$file--$each"
    $ awk -v filestem="${filestem:2:5}" \
        '{filename = filestem; print >> filename}'
    
por 27.04.2014 / 00:45

Tags