fazendo 4 de 1 arquivo com awk

1

eu tenho lista grande - arquivo de texto com 1 coluna de números (comprimento = 14). Os números têm 4 prefixos diferentes 00001-00004. Como faço para dividir 1 lista para 4 arquivos diferentes. 1 arquivo deve conter lista de números com um prefixo.

    
por sander 19.11.2014 / 11:47

3 respostas

1

Use esse comando awk :

awk '/^00001/{print >"file1"} \
     /^00002/{print >"file2"} \
     /^00003/{print >"file3"} \
     /^00004/{print >"file4"}' inputfile

Verifique qual prefixo a linha possui e imprime a linha inteira em file1 to file4 . inputfile é o arquivo com a lista grande.

    
por 19.11.2014 / 11:55
1

Usando (G) awk and match

awk 'match($0,/^0000([1-4])/,a){print > "file"a[1]}' file

Posix awk

awk '/0000[1-4]/{print > "file"substr($0,5,1)}' file

ou se todos tiverem prefixos apenas

awk '{print > "file"substr($0,5,1)}' file
    
por 19.11.2014 / 12:10
0

Você está livre para usar apenas bash

while IFS= read -r num
do
  echo "$num" >> "file${num:4:1}"
done < number_list.file
    
por 19.11.2014 / 12:33

Tags