shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Extrair campos de tamanho fixo (problema com acentuação)


From: rapha.couto
Subject: Extrair campos de tamanho fixo (problema com acentuação)
Date: Tue, 09 Oct 2012 14:02:19 -0000
User-agent: eGroups-EW/0.82

Olá a todos.

Estou criando um script o qual deve extrair os dados de um arquivo com campos 
de tamanho fixo. Estava usando o gawk pra isso. O problema é que o mesmo se 
confunde com campos com acentuação.

$ echo 'aeiou'|gawk -v FIELDWIDTHS='1 2 2' -v OFS=',' '{$1=$1; print}'
a,ei,ou

$ echo 'aéiou'|gawk -v FIELDWIDTHS='1 2 2' -v OFS=',' '{$1=$1; print}'
a,é,io

Parece que ele está contando bytes e não caracteres e como os acentos possuem 2 
bytes o resultado não é o esperado. Eu tentei também o cut mas mesmo com a 
opção de seleção por caracter não deu certo:
$ echo 'aeiou'|cut -b 2-3
ei

$ echo 'aéiou'|cut -b 2-3
é

$ echo 'aéiou'|cut -c 2-3 (esse deveria funcionar)
é

A única solução que eu encontrei foi usar o sed:
$ echo 'aéiou'|sed  's/^.\{1\}\(.\{2\}\).*$/\1/'
éi

Isso resolveu o meu problema. Entretanto, o problema é que essa solução é 
extremamente mais lenta do que as primeiras e como o arquivo é grande, o 
processo de extração está demorando muito. Alguém conhece uma solução mais 
veloz?

Desde já, obrigado!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]