|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
[unxutils] sintassi sed
Salve a tutti. Ho bisogno di modificare via batch delle righe di un file di testo. Ho cercato un pò in rete e a quanto ho capito serve il porting su windows del comando sed di linux.
Ho perciò scaricato da qui http://sourceforge.net/projects/unxutils il pacchetto e copiato il file sed.exe nella cartella system32. Purtroppo l'help del comando non mi è stato di grosso aiuto. Ciò che vorrei fare è semplicemente, una volta richiamato il comando, potergli dare come parametri il nome del file, la stringa da cercare e quella con cui sostituirla. Spero che qualcuno di voi abbia giù usato questa utility e possa consigliarmi. P.S. Non sapevo se postare qui o in programmazione. Nel caso la sezione sia sbagliata mi scuso fin da ora e chiedo a un moderatore che gentilmente mi sposti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Cercando un pò ho trovato un prezioso suggerimento su wikipedia
http://en.wikipedia.org/wiki/Sed che adattata a windows son riuscito a far funzionare così sed "s/stringa_da_cercare/stinga_da_sostituire/g" file_input.txt > file_output.txt Ultima domanda: è possibile effettuare sostituzioni multiple in un colpo solo o sono costretto a eseguire prima un comando, poi passare come input della seconda sostituzione l'ouput della prima e così via? Grazie. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Mi rispondo da solo. E' possibile separando le sostituzioni con il punto e virgola
sed "s/cerca1/sostituisci1/g;s/cerca2/sostituisci2/g" input.txt > output.txt |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
sorry nn ho fatto in tempo ad aiutarti
la tua soluzione va bene... ma secondo me è meglio se usi uno "script" file per le sostituzioni sed -f SCRIPTFILE input > output e nello SCRIPT FILE ci metti le tue sostituzioni: s/cerca1/sostituisci1/g s/cerca2/sostituisci2/g (credo vada anche nella versione per windows...ma nn sono sicuro...se vuoi prova)
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Ciao zuper. Gentilissimo.
Ho provato e funziona perfettamente. In questo modo risulta tutto più pulito. Ho anche provato a fare una sostituzione non case-sensitive e ho visto su google che è sufficiente aggiungere il parametro i. s/cerca1/sostituisci1/gi s/cerca2/sostituisci2/gi Mi rimane ancora una curiosità se puoi aiutarmi. E' possibile effettuare una sostituzione soltanto nel caso in cui una riga del file contenga SOLO il testo specificato come cerca e non anche altro contenuto? Esempio pippo ciao pippo pippo Vorrei sostituire pippo con pluto solo nelle righe 1 e 3. Grazie ancora. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
dopo controllo
al volo prova s/^pippo//d
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] Ultima modifica di zuper : 05-06-2009 alle 21:26. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Grazie per la risposta ma non ho capito come va scritta per intero.
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
sed "s/^pippo/stringainsostituzione/d" input > output
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Grazie. Purtroppo mi restituisce un file vuoto. Ho anche provato con
sed "s/^pippo$/pluto/g" input > output ma modifica solo l'ultima riga del file. |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
domani ci do un occhio, ritiro su una macchina linux e ti dico...spero
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
boh io sto provando su una macchina linux e il
sed 's/^pippo$/pluto/g' test funziona...
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Evidentemente questo porting su windows è stato fatto ad cazzum. Mi è stato consigliato di provare gnuwin32. Domani tenterò con quello. Grazie per la disponibilità e buona notte.
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
se no ti scarichi una fedora vmware e la usi con vmware player
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
vedi?
Codice:
[root@localhost tmp]# cat test pippo ciao pippo pippo pippo cane [root@localhost tmp]# sed 's/^pippo$/pluto/g' test pluto ciao pippo pluto pippo cane [root@localhost tmp]#
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Ho visto. E' proprio un problema del porting. Ripiegherò su gnuwin32 allora sperando vada meglio. Grazie ancora.
edit. Confermo che ^pippo$ col sed di gnuwin32 fa esattamente il suo dovere. Ultima modifica di john_revelator : 06-06-2009 alle 12:34. |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:20.




















