Newsgroup: it.comp.os.linux.sys
Titolo: Estrarre dati da file di testo

Dovrei estrarre da un file di testo (file.html) alcuni dati
Questi sono compresi tra il tag [<font face="Arial" size="2">]
ed il tag [</font>].
Potreste spiegarmi come usare in comando grep  per individuare il
primo tag e poi come copiare il testo fino al secondo tag
Grazie
-- 
Paperinik


Meglio (g)awk, dato che grep puo` *trovare* cio`
che cerchi, ma non estrarlo.
Sull'uso di awk, beh, "man awk" per prima cosa...
bye,
-- 
piergiorgio


Fondamentalmente io setterei il FS = "</font>" e poi il resto.
-- 
"I am your automatic lover..."
Roy Batty

 Sull'uso di awk, beh, "man awk" per prima cosa...
Senza saper ne` leggere ne` scrivere, per prima cosa:
http://www.google.com/search?q=gawk+tutorial
Come seconda cosa studiare molto bene la guida: 
http://www.gnu.org/software/gawk/manual/gawk.pdf
AWK e` un linguaggio complesso quasi quanto il C (in effetti
somiglia molto al C ma non e` C). 
man awk e` insufficiente per imparare awk, anche come uso 
base, serve solo come riferimento quando dimentichi un comando od una
funzione.
Una nota polemica:

 Sull'uso di awk, beh, "man awk" per prima cosa...
Senza saper ne` leggere ne` scrivere, per prima cosa:
http://www.google.com/search?q=gawk+tutorial
Come seconda cosa studiare molto bene la guida: 
http://www.gnu.org/software/gawk/manual/gawk.pdf
AWK e` un linguaggio complesso quasi quanto il C (in effetti
somiglia molto al C ma non e` C). 
man awk e` insufficiente per imparare awk, anche come uso 
base, serve solo come riferimento quando dimentichi un 
comando od una funzione.
Una nota polemica:
Quando ti chiedono come imparare il C cosa consigli?
Non puoi certo dire:
man gcc

 man gcc
Infatti, come qualcun altro ha notato, ho scritto:
"man awk" -->per prima cosa<--
Mi pare che, sempre con polemica, leggere attentamente
sia una opzione...
bye,
-- 
piergiorgio

 Per andare avanti ci vuole un bel tutorial.
 
Se non noti differenze tra questi ultimi due brani, usa diff.

 la mia stessa opinione sulla didattica di AWK:
Ma non contraddice quello che ho scritto io.
Mai scritto che si impara _tutto_ dal manuale, ne
tantomento che sia sufficiente, queste sono tue
presunte estrapolazioni per giustificare la tua
incuria nel leggere il mio post e l'altro.
Io ho scritto che si puo` partire da quello.
Secondo, sempre a proposito di attenzione, nel
manuale di gawk, alla fine, sotto la voce "SEE ALSO",
a parte gli altri comandi utili, sono citate ben
due letture interessanti:
The AWK Programming Language, Alfred V. Aho, Brian W. Kernighan,
Peter J. Weinberger, Addison-Wesley, 1988.  ISBN 0-201-07981-X.
GAWK: Effective AWK Programming, Edition 3.0, published by the
Free Software Foundation, 2001.
E questo secondo, guarda caso, e` quello che consiglli
anche tu. Quindi iniziare con il manuale (magari dalla
fine) non e` neanche del tutto sbagliato.
E piu` sotto sono citati degli autori, di cui si puo`
sempre fare una ricerchina in giro.
Quindi, ricapitolando, non interpretare a tuo
comodo quello che ho scritto, perche` non c'e`
quello che tu vuoi farmi sostenere.
Infine, per favore, evita le polemiche.
bye,
-- 
piergiorgio



Se il documento è XHTML tutto quello che ti occorre è una query con XPath.
Se è HTML ti consiglio di usare Python con la libreria BeautifulSoup:
http://www.crummy.com/software/BeautifulSoup/documentation.html
Ecco un veloce esempio:
from BeautifulSoup import BeautifulSoup
html = """
<html>
  <body>
    <font face="Verdana"><p>Hello verdana</p></font>
    <font face="Arial" size="2"><p>Hello arial</p></font>
  </body>
</html>
"""
soup = BeautifulSoup(html)
attrs = {
    'face': 'Arial',
    'size': '2'
    }
for elem in soup.findAll('font', attrs):
    print elem.contents
$python bs.py
[<p>Hello arial</p>]
Saluti  Manlio Perillo

 Di' la verita: volevi fare il figo?
Che risposta aspetti che ti dia?
Manlio Perillo

 semplicemente fretta usera'  sed ..... e via.
Si, concordo; 
il mio era solo un suggerimento.
In linea di massima è meglio usare lo strumento più specializzato per il 
dato scopo, e dato che conosco Python ho suggerito la libreria che è più 
specializzata per il compito richiesto dall'OP.
Saluti  Manlio Perillo