Linux en Espanol
 
Extraer texto de una l?nea de un txt (tema #24494)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Programación
Autor Mensaje
darkneptune
Forista
Registrado: 2011-06-14
Mensajes: 8

Publicado: 2012-09-11 13:59:07    Asunto: Extraer texto de una l?nea de un txt

Hola,

mi pregunta es la siguiente:

si tengo un archivo de texto (txt), con una sola l?nea de texto; ?c?mo puedo extraer una parte de ella? ?qu? comando he de investigar?

Mi caso concreto es esta l?nea:
34:Transcription <input type="text" class="in2" name="ipa" value="hʌˈloʊ" readonly="readonly"><br>

y me gustar?a extraer siempre el texto que va despues de [i:bc3457d0a3][b:bc3457d0a3]value=[/b:bc3457d0a3][/i:bc3457d0a3] y que est? entre comillas. (en esta instancia es el texto: [i:bc3457d0a3][b:bc3457d0a3]hʌˈloʊ[/b:bc3457d0a3][/i:bc3457d0a3]

:roll: :?: [/b]
TheBalrog
BOFH
Registrado: 2004-04-05
Mensajes: 3012

Publicado: 2012-09-11 14:53:42    Asunto:

Puedes darte una vuelta por ac?:

http://www.ibm.com/developerworks/linux/library/l-textutils/index.html

La utilidad awk es bastante ?til, pero deber?s leer a detalle su uso.
orvtech
Forista


Registrado: 2010-05-27
Mensajes: 142

Publicado: 2012-09-23 06:55:31    Asunto: Re: Extraer texto de una l?nea de un txt

[quote:891d567632="darkneptune"]Hola,

mi pregunta es la siguiente:

si tengo un archivo de texto (txt), con una sola l?nea de texto; ?c?mo puedo extraer una parte de ella? ?qu? comando he de investigar?

Mi caso concreto es esta l?nea:
34:Transcription <input type="text" class="in2" name="ipa" value="hʌˈloʊ" readonly="readonly"><br>

y me gustar?a extraer siempre el texto que va despues de [i:891d567632][b:891d567632]value=[/b:891d567632][/i:891d567632] y que est? entre comillas. (en esta instancia es el texto: [i:891d567632][b:891d567632]hʌˈloʊ[/b:891d567632][/i:891d567632]

:roll: :?: [/b][/quote:891d567632]

[code:1:891d567632]cat archivo.txt | grep value | tr ' ' '\n' | grep value | sed -e 's/\=/ /g' | awk '{print $2}'[/code:1:891d567632]

Estoy seguro que se puede hacer solo con awk pero a estas horas me da flojera.
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-09-23 21:45:58    Asunto:

Hola.

Como dice Orvtech, se puede hacer con s?lo awk:
[code:1:5b15f29662]awk -F 'value=|" readonly' '/value/ {print $2}' < archivo.txt[/code:1:5b15f29662]

S?lo me queda la duda de si hay o no un espacio en el fichero entre el readonly y las comilas inmediatamente anteriores. En mi ejemplo he supuesto que s?. Si no es as?, corrigelo.

Saludos.





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries