AWK: o '' como separador de campo

1

Eu tenho essas linhas do db dump

INSERT INTO db1 VALUES ('2', '33', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '23544', '1', '1987', '3', '1', '1');
INSERT INTO db1 VALUES ('2', '343', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '21', '1', '1987', '3', '1', '1');

Como você viu, o segundo registro é 33, 23544, 343 usando o ''.

Eu quero substituir com awk por um aumento numérico Arquivado (1,2,3 ..), eu sei como fazer usando $2++ , mas eu não sei como passar o ' como um separador de campo.

Usando esta sintaxe, me dê um erro:

awk 'BEGIN { FS = "' '" } ; { print $2 }'
    
por elbarna 19.05.2015 / 02:57

1 resposta

2

E sobre

awk -F\' '{print $2}'

Apenas escape do '

A obtenção do separador de campos de saída leva um pouco mais de cotação, mas pode ser feito configurando o OFS dentro de awk . Colocando tudo junto com a sua pergunta, seria parecido com (com muito apreciado limpeza de @ Peter.O):

awk -F\' -vOFS=\' '{$2++;print}'
    
por 19.05.2015 / 03:01

Tags