[Risolto] ho un file: come faccio a sostituire una stringa con degli "a capo"?

Il ritrovo della comunità dove confrontarsi e discutere sulle notizie dal mondo dell'informatica, di Ubuntu e di tutto quello che la riguarda, novità, pettegolezzi e quant'altro.
Avatar utente
androide74
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 875
Iscrizione: martedì 1 luglio 2008, 14:30
Desktop: GNOME e Xfce
Distribuzione: 20.04 LTS
Sesso: Maschile
Località: Comunità Europea
Contatti:

[Risolto] ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da androide74 »

Mettiamo che ho un file enorme, voglio inserire un "a capo" prima di ogni parentesi quadra.
Con la funzione "cerca e sostituisci" non è possibile digitare caratteri "strani" come il TAB o il LF.

Ho provato a fare:

cerca '['
sostituisci '\n['

ma sostituisce le due stringhe e non inserisce la nuova linea.

C'è qulache editor che permetta ciò?
C'è qualche modo per "ingannare questi editor? codici ascii? codici escape?
Oppure sono costretto a creare uno script? (ma non saprei da che parte cominciare)
Ultima modifica di androide74 il venerdì 8 ottobre 2010, 12:48, modificato 1 volta in totale.
Ubuntu 20.04 LTS
Avatar utente
Starless
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2020
Iscrizione: domenica 10 giugno 2007, 11:45
Località: Martina Franca (TA)

Re: ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da Starless »

Prova da terminale così (fatti una copia del file per cautela):

Codice: Seleziona tutto

sed -i 's/\[/\n[/g' nome_file
Avatar utente
androide74
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 875
Iscrizione: martedì 1 luglio 2008, 14:30
Desktop: GNOME e Xfce
Distribuzione: 20.04 LTS
Sesso: Maschile
Località: Comunità Europea
Contatti:

Re: ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da androide74 »

Starless ha scritto: Prova da terminale così (fatti una copia del file per cautela):

Codice: Seleziona tutto

sed -i 's/\[/\n[/g' nome_file
(good) grande!
però se invece di '[' voglio sostituire '{' non funziona...
Ubuntu 20.04 LTS
Avatar utente
androide74
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 875
Iscrizione: martedì 1 luglio 2008, 14:30
Desktop: GNOME e Xfce
Distribuzione: 20.04 LTS
Sesso: Maschile
Località: Comunità Europea
Contatti:

Re: ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da androide74 »

androide74 ha scritto: (good) grande!
però se invece di '[' voglio sostituire '{' non funziona...
ah basta fare così:

Codice: Seleziona tutto

sed -i 's/{/\n{/g' nome_file
ma come funziona?
s=sostituisci
g=??

e se invece di un \n voglio inserire un TAB?
Ultima modifica di androide74 il venerdì 8 ottobre 2010, 12:52, modificato 1 volta in totale.
Ubuntu 20.04 LTS
Avatar utente
Starless
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2020
Iscrizione: domenica 10 giugno 2007, 11:45
Località: Martina Franca (TA)

Re: [Risolto] ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da Starless »

androide74 ha scritto: ma come funziona?
s=sostituisci
g=??
s=search
g=global replacement
androide74 ha scritto: e se invece di un \n voglio inserire un TAB?
Invece di \n metti \t.

Comunque il comando sed e awk sono dei comandi potentissimi ed allo stesso tempo molto complessi però se si sa dove mettere le mani puoi fare di tutto con le stringhe. Tra l'altro sono molto usati negli ambienti UNIX all'interno degli script.

Su Internet trovi moltissime guide ed esempi.

Ecco un assaggino http://www.grymoire.com/Unix/Sed.html
Avatar utente
androide74
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 875
Iscrizione: martedì 1 luglio 2008, 14:30
Desktop: GNOME e Xfce
Distribuzione: 20.04 LTS
Sesso: Maschile
Località: Comunità Europea
Contatti:

Re: [Risolto] ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da androide74 »

Starless ha scritto: Invece di \n metti \t.

Comunque il comando sed e awk sono dei comandi potentissimi ed allo stesso tempo molto complessi però se si sa dove mettere le mani puoi fare di tutto con le stringhe. Tra l'altro sono molto usati negli ambienti UNIX all'interno degli script.

Su Internet trovi moltissime guide ed esempi.

Ecco un assaggino http://www.grymoire.com/Unix/Sed.html
grazie mille, quando avrò tempo ci studierò un po'  ;)
Ubuntu 20.04 LTS
Avatar utente
Starless
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2020
Iscrizione: domenica 10 giugno 2007, 11:45
Località: Martina Franca (TA)

Re: [Risolto] ho un file: come faccio a sostituire una stringa con degli "a capo"?

Messaggio da Starless »

A titolo informativo io uso dei programmi grafici per fare sostituzioni in più file (anche sostituzioni ricorsive) e rinominare i nomi dei file. Trovi tutto nei repository:

1) regexxer: per sostituzione di stringhe all'interno di file

2) pyrenamer e gprename: per modificare i nomi dei file

3) tkdiff: per vedere le differenze del contenuto di due file

Ovviamente imparare sed e awk è molto meglio perchè come ti ho già detto sono molto molto potenti.

Poi unendoli ad altri comandi come find ad esempio ottieni qualcosa di sconvolgente  ::)
Scrivi risposta

Ritorna a “Bar Ubuntu”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti