Espressioni regolari con la bash/shell molto ... irregolari
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Espressioni regolari con la bash/shell molto ... irregolari
salve gente , grep , egrep e fgrep supportano le espressioni regolari ? dovrebbero giusto ? almeno uno di questi 3 comandi dovrebbe ?
la mia esigenza nasce dall'avere una pagina web e dal fatto che devo tirarne fuori i link che contiene o link con contenuto specifico come domini , nomi , etc etc , ok fin qui ?
salvo la pagina per fare una prova in locale e testo la regex che non ne vuole sapere di andare ne con grep , ne con egrep , ne con fgrep , ne con una pipe ( con cat pagina.html ad esempio )
ho letto che alcune distro hanno un buon supporto alle regex altre meno , addirittura ci sarebbe differenza sull'escape dei caratteri , il bello è che tutto questo l'ho racimolato e messo insieme da post di mezza riga quindi non proprio documentati alla perfezione : qualcuno mi illumina sulle regex e sulla bash di Slackware 13 ? Documentazione sulla sintassi ?
la mia esigenza nasce dall'avere una pagina web e dal fatto che devo tirarne fuori i link che contiene o link con contenuto specifico come domini , nomi , etc etc , ok fin qui ?
salvo la pagina per fare una prova in locale e testo la regex che non ne vuole sapere di andare ne con grep , ne con egrep , ne con fgrep , ne con una pipe ( con cat pagina.html ad esempio )
ho letto che alcune distro hanno un buon supporto alle regex altre meno , addirittura ci sarebbe differenza sull'escape dei caratteri , il bello è che tutto questo l'ho racimolato e messo insieme da post di mezza riga quindi non proprio documentati alla perfezione : qualcuno mi illumina sulle regex e sulla bash di Slackware 13 ? Documentazione sulla sintassi ?
- d4z_c0nf
- Packager

- Messaggi: 1296
- Iscritto il: mar 14 mar 2006, 18:07
- Nome Cognome: Rocco Aliberti
- Slackware: 14.2-current64
- Kernel: 4.14.73
- Desktop: awesomeWM
- Località: Pinerolo
Re: Espressioni regolari con la bash/shell molto ... irregolari
Le regexp funzionano, magari se ci fai "lavorare" su un esempio risolviamo prima.
rock
rock
Re: Espressioni regolari con la bash/shell molto ... irregolari
ecco una bella mezza notizia , l'altra mezza è : come ?d4z_c0nf ha scritto:Le regexp funzionano, magari se ci fai "lavorare" su un esempio risolviamo prima.
rock
ovviamente quando dalla shell esamino una pagina web il codice html non viene interpretato quindi io vedo il sorgente della pagina , ok ? ecco una regex che ad esempio mi trova tutti i link di megaupload
Codice: Seleziona tutto
http://www\.megaupload\.com/.{0,3}\?d=[a-zA-Z0-9]{8}- d4z_c0nf
- Packager

- Messaggi: 1296
- Iscritto il: mar 14 mar 2006, 18:07
- Nome Cognome: Rocco Aliberti
- Slackware: 14.2-current64
- Kernel: 4.14.73
- Desktop: awesomeWM
- Località: Pinerolo
Re: Espressioni regolari con la bash/shell molto ... irregolari
In pratica tu vuoi matchare tutti i link di quel tipo presenti in una o più pagine web giusto?freax ha scritto:ecco una bella mezza notizia , l'altra mezza è : come ?d4z_c0nf ha scritto:Le regexp funzionano, magari se ci fai "lavorare" su un esempio risolviamo prima.
rock
ovviamente quando dalla shell esamino una pagina web il codice html non viene interpretato quindi io vedo il sorgente della pagina , ok ? ecco una regex che ad esempio mi trova tutti i link di megaupload
provata sul desktop e va , perché da console no ?Codice: Seleziona tutto
http://www\.megaupload\.com/.{0,3}\?d=[a-zA-Z0-9]{8}
Re: Espressioni regolari con la bash/shell molto ... irregolari
yes , però volevo cogliere l'occasione per rispolverare le regex , comunque si , il succo è quello anche se dopo la regex veniva la parte nella quale controllavo se ci fossero doppioni nell'output visto che a volte sia il link alla pagina sia il nome del link hanno la forma http://www.etcetc.itd4z_c0nf ha scritto:In pratica tu vuoi matchare tutti i link di quel tipo presenti in una o più pagine web giusto?freax ha scritto:ecco una bella mezza notizia , l'altra mezza è : come ?d4z_c0nf ha scritto:Le regexp funzionano, magari se ci fai "lavorare" su un esempio risolviamo prima.
rock
ovviamente quando dalla shell esamino una pagina web il codice html non viene interpretato quindi io vedo il sorgente della pagina , ok ? ecco una regex che ad esempio mi trova tutti i link di megaupload
provata sul desktop e va , perché da console no ?Codice: Seleziona tutto
http://www\.megaupload\.com/.{0,3}\?d=[a-zA-Z0-9]{8}
- d4z_c0nf
- Packager

- Messaggi: 1296
- Iscritto il: mar 14 mar 2006, 18:07
- Nome Cognome: Rocco Aliberti
- Slackware: 14.2-current64
- Kernel: 4.14.73
- Desktop: awesomeWM
- Località: Pinerolo
Re: Espressioni regolari con la bash/shell molto ... irregolari
Non ho capito bene poi il fatto della prova sul desktop..
In ogni caso ho fatto questa prova:
Ho un file pippo.htm:
Scusa la rozzezza ma è per velocità.
Do il comando:
e il risultato è coerentemente:
In ogni caso ho fatto questa prova:
Ho un file pippo.htm:
Codice: Seleziona tutto
http://www.megaupload.com/?d=R37IFLY1
dffhttp://www.megaupload.com/?d=R37IFLY2
gfdlgk http://www.megaupload.com/?d=R37IFLY3
fdsaf
http://www.megaupload.com/?d=R37IFLY4
Do il comando:
Codice: Seleziona tutto
egrep -o 'http://www\.megaupload\.com/.{0,3}\?d=[a-zA-Z0-9]{8}' ./pippo.html
Codice: Seleziona tutto
http://www.megaupload.com/?d=R37IFLY1
http://www.megaupload.com/?d=R37IFLY2
http://www.megaupload.com/?d=R37IFLY3
http://www.megaupload.com/?d=R37IFLY4
- d4z_c0nf
- Packager

- Messaggi: 1296
- Iscritto il: mar 14 mar 2006, 18:07
- Nome Cognome: Rocco Aliberti
- Slackware: 14.2-current64
- Kernel: 4.14.73
- Desktop: awesomeWM
- Località: Pinerolo
Re: Espressioni regolari con la bash/shell molto ... irregolari
Ma le regex le usi correttamente in quella stringa.freax ha scritto:[
yes , però volevo cogliere l'occasione per rispolverare le regex , comunque si , il succo è quello anche se dopo la regex veniva la parte nella quale controllavo se ci fossero doppioni nell'output visto che a volte sia il link alla pagina sia il nome del link hanno la forma http://www.etcetc.it
Forse usavi male i comandi. Per questo dovresti leggerti un po' i man o gl'help.
rock
Re: Espressioni regolari con la bash/shell molto ... irregolari
ok perfetto , tra grep -E come egrep ho fatto un bel po di casino ... qualche idea su come togliere i duplicati ? l'ordine dell'elenco deve rimanere invariato .d4z_c0nf ha scritto:Ma le regex le usi correttamente in quella stringa.freax ha scritto:[
yes , però volevo cogliere l'occasione per rispolverare le regex , comunque si , il succo è quello anche se dopo la regex veniva la parte nella quale controllavo se ci fossero doppioni nell'output visto che a volte sia il link alla pagina sia il nome del link hanno la forma http://www.etcetc.it
Forse usavi male i comandi. Per questo dovresti leggerti un po' i man o gl'help.
rock
- ulisse89
- Packager

- Messaggi: 643
- Iscritto il: sab 17 gen 2009, 12:53
- Nome Cognome: Riccardo
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: Xfce
- Località: Bologna
Re: Espressioni regolari con la bash/shell molto ... irregolari
Comunque ricordo di aver ricompilato il programma "urlview" che fa proprio al caso tuo. Estrae gli URL dai file. E' un peccato che sia scritto in C e quindi non possa darti un esempio di come potevi usare *grep. 
Re: Espressioni regolari con la bash/shell molto ... irregolari
quella parte del lavoro è andata comunque , ah se questo urlview avesse avuto il controllo sui duplicati .ulisse89 ha scritto:Comunque ricordo di aver ricompilato il programma "urlview" che fa proprio al caso tuo. Estrae gli URL dai file. E' un peccato che sia scritto in C e quindi non possa darti un esempio di come potevi usare *grep.
devo risolvere questa cosa dei link duplicati anche se la cosa più rapida rimane il salvataggio tramite un frontend web e da li incollo il testo o lo controllo a manina ...
- raffaele181188
- Packager

- Messaggi: 789
- Iscritto il: ven 7 set 2007, 21:40
- Nome Cognome: Raffaele
- Slackware: current
- Kernel: 2.6.29.6
- Desktop: KDE 4.3
- Distribuzione: Ubuntu
- Località: DearSkin (FG)
Re: Espressioni regolari con la bash/shell molto ... irregolari
Ma tu per duplicati ora cosa intendi? Se intendi che alcune stringhe vengono matchate più volte, beh, allora devi modificare il comando e passare delle opzioni a seconda del caso. Se invece intendi eliminare tutte le istanze di un URL che si ripetono in un documento meno una, allora sei costretto a usare un linguaggio di programmazione, e io ti consiglio un linguaggio di alto livello con supporto ai contenitori senza duplicati (io conosco Java e Python per questo scopo)
Offtopic: Per ricevere un aiuto buono e rapido, l'approccio migliore è senza dubbio spiegare tutto, per bene, e nel primo post
Offtopic: Per ricevere un aiuto buono e rapido, l'approccio migliore è senza dubbio spiegare tutto, per bene, e nel primo post
- 414N
- Iper Master

- Messaggi: 2924
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Espressioni regolari con la bash/shell molto ... irregolari
Per rimuovere i duplicati da un file (intendo righe uguali) si usa uniq, in combinazione con sort (le righe duplicate devono essere adiacenti):
Codice: Seleziona tutto
cat file | sort | uniq
- raffaele181188
- Packager

- Messaggi: 789
- Iscritto il: ven 7 set 2007, 21:40
- Nome Cognome: Raffaele
- Slackware: current
- Kernel: 2.6.29.6
- Desktop: KDE 4.3
- Distribuzione: Ubuntu
- Località: DearSkin (FG)
Re: Espressioni regolari con la bash/shell molto ... irregolari
Buono a sapersi414N ha scritto: cat file | sort | uniq
Re: Espressioni regolari con la bash/shell molto ... irregolari
per la cronaca,raffaele181188 ha scritto:Buono a sapersi414N ha scritto: cat file | sort | uniq
Codice: Seleziona tutto
sort -u file- 414N
- Iper Master

- Messaggi: 2924
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Espressioni regolari con la bash/shell molto ... irregolari
Maial, è vero! GrazieZeD ha scritto:per la cronaca,raffaele181188 ha scritto:Buono a sapersi414N ha scritto: cat file | sort | uniqè più che sufficienteCodice: Seleziona tutto
sort -u file
