Autore Topic: Sed  (Letto 775 volte)

Buntolo

  • Visitatore
Sed
« il: Novembre 02, 2011, 10:16:59 am »
Occhei gente, per me sed è fottutamente complicato  :angry: :angry: :angry:

Servirebbe una guida chiara, visto che non ne trovo ed il manuale fa schifo :sbeg:

Ad esempio voglio fare del parsing per cancellare
"stoca"
"puppa"
"melo"
"forte"

Ossia tutto ciò che è tra ".

Sto leggendo questa guida: http://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq4_005.html
Ma non ci capisco una beneamata minchia  :angry:
Perché cazzo sed è così astruso?

E perché tutti, dico TUTTI, nelle guide usano / come separatore, cavolo usate _ che è più chiaro  :angry: :angry:

Darko82

  • Visitatore
Re:Sed
« Risposta #1 il: Novembre 02, 2011, 11:13:03 am »
http://www.pluto.it/files/ildp/guide/abs/sedawk.html

Io ho imparato (si fa per dire) con questa, che ho trovato semplice.
Non so quanto esaustiva, però credo sia un discreto punto di partenza

sgnablo

  • Visitatore
Re:Sed
« Risposta #2 il: Novembre 02, 2011, 12:00:35 pm »
non ho capito di preciso quale stringa sia quella di partenza e cosa vuoi ottenere. comunque, se vuoi usare i punti come separatori, basta awk:

echo "tuamammatroia.stocapuppameloforte.vaffanculo" | awk -F "." '{print $1 $3}'

restituisce tuamammatroiavaffanculo. volendo puoi formattare l'output come ti pare :ysy:

SuNjACk

  • Visitatore
Re:Sed
« Risposta #3 il: Novembre 02, 2011, 02:02:56 pm »
Occhei gente, per me sed è fottutamente complicato  :angry: :angry: :angry:

Servirebbe una guida chiara, visto che non ne trovo ed il manuale fa schifo :sbeg:

Ad esempio voglio fare del parsing per cancellare
"stoca"
"puppa"
"melo"
"forte"

Ossia tutto ciò che è tra ".

Sto leggendo questa guida: http://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq4_005.html
Ma non ci capisco una beneamata minchia  :angry:
Perché cazzo sed è così astruso?

E perché tutti, dico TUTTI, nelle guide usano / come separatore, cavolo usate _ che è più chiaro  :angry: :angry:

Lo puoi usare _ in sed, ma si usa / perchè è quello che viene più spesso da altri programmi che fanno uso di regex (perl, vim, ecc....)

se vuoi eliminare tutto ciò che è tra potresti provare:
Codice: [Seleziona]
s/"[[:alpha:]]*"//g
che cancella tutte i caratteri alfanumerici compresi tra virgolette (elimina anche i " ")