Processamento de texto para palavras conectadas por hífen

2

Eu tenho arquivos de texto (* .txt) que eu processo, eu quero encontrar palavras conectadas por hífen como "associado a drogas" ou "ligado a drogas", "relacionado a drogas".

Preciso da sua ajuda para converter o primeiro em "associado ao medicamento" e o segundo convertê-lo em "vinculado ao medicamento". Em um arquivo eu poderia ter muitos desses, uma vez que é "associado", "ligado", "relacionado" e poderia ter outros termos.

    
por user2957777 30.04.2014 / 22:49

1 resposta

5

perl -pi.back -e 's/(\w+)-(\w+ed)\b/$2 with $1/g' ./*.txt

Isso é portátil e funcionaria com qualquer sistema com perl instalado.

Em sistemas GNU recentes, você pode fazer algo similar com o GNU sed :

sed -ri.back 's/(\w+)-(\w+ed)\b/ with /g'

POSIXly:

for f in ./*.txt; do
  mv -i "$f" "$f.back" &&
    sed -e :1 -e 's/\([[:alnum:]]\{1,\}\)-\([[:alnum:]]\{1,\}ed\)\(\([^[:alnum:]].*\)\{0,1\}\)$/ with /;t1' < "$f.back" > "$f"
done
    
por 30.04.2014 / 22:56