Eliminare gli a capo ed altre tabulazioni in un testo.

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
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.
Rispondi
Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Eliminare gli a capo ed altre tabulazioni in un testo.

Messaggio da sberla54 »

Ciao a tutti.

Mi trovo nei casini perche' devo usare uno script che e' in grado di prendere varie frasi o testi brevi da un file sorgente in .txt solo e soltanto se ogni frase/testo e' su un'unica riga.

Vorrei dargli in pasto delle citazioni, che sono spesso formattate cosi:
"Come va?".
"Bene, grazie. E tu?".
"Medio". Cosi' diceva sempre.
-- Enrico Brizzi, Jack Frusciante e' uscito dal gruppo

Come posso fare per togliere l'a capo dal fondo di ogni riga, per "tirare su" la riga successiva?

Pensavo di sostituire il carattere non stampabile dell'a capo di openoffice con il nulla ma a quanto pare non si puo' fare...

Mettermi a fare il lavoro a mano mi farebbe uscire scemo...

Spero sappiate aiutarmi!
Grazie! :)

Avatar utente
venerdi_12
Packager
Packager
Messaggi: 258
Iscritto il: sab 9 lug 2005, 0:00
Nome Cognome: Luciano Fattore
Kernel: 3.0
Desktop: kde-4.7.0
Distribuzione: archlinux
Località: Lusciano (Ce)

Messaggio da venerdi_12 »


Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Messaggio da sberla54 »

Uhm non so...non credo...

Non ho ben capito con quale script il problema e' stato risolto...ma non sono sicuro che faccia al caso mio....

Tu ne capisci piu' di me di script...hai letto bene il mio problema?
Con quegli script posso risolvere?

Mi faresti un po' di luce? :)

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

non ho ben capito ma se devi togliere gli a-capo (codice /n) e sostituirli con uno spazio puoi fare così:

Codice: Seleziona tutto

IN_FILE=file_di_testo_originale
OUT_FILE=file_di_uscita
sed -e 's/\n/ /g' $IN_FILE > $OUT_FILE
in realtà se la cosa funziona puoi anche sovrascrivere direttamente il file con:

Codice: Seleziona tutto

sed -i -e 's/\n/ /g' $IN_FILE
M

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

Codice: Seleziona tutto

perl -e 'open F, "file.txt"; while(<F>){ s/\n//; print; }'
oppure

Codice: Seleziona tutto

tr  -d "\n"  < file.txt
Uno dei limiti di sed è di non poter direttamente sostituire i caratteri speciali \n e \r.

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

Paoletta ha scritto: Uno dei limiti di sed è di non poter direttamente sostituire i caratteri speciali \n e \r.
:shock:

ah. non lo sapevo-... però funziona al contrario... io riesco a sostituire gli spazi con gli "\n". credevo funzionasse pure al contrario... son stato un pò un caprone a non provare...
:oops:

M

Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Messaggio da sberla54 »

non ho ben capito ma se devi togliere gli a-capo (codice /n) e sostituirli con uno spazio puoi fare così:
Si esatto :)

Quindi e' questo che mi consigliate di usare alla fine?

Codice: Seleziona tutto

perl -e 'open F, "file.txt"; while(<F>){ s/\n//; print; }'

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

sberla54 ha scritto:
non ho ben capito ma se devi togliere gli a-capo (codice /n) e sostituirli con uno spazio puoi fare così:
Si esatto :)
Questo fa al caso tuo:

Codice: Seleziona tutto

perl -e 'open F, "file.txt"; while(<F>){ s/\n/ /; print; }'
l'altro non sostituiva con uno spazio, ma cancellava l'invio e basta;
anche questo va bene per te

Codice: Seleziona tutto

tr  -s "\n" " "  < file.txt

Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Messaggio da sberla54 »

Grazie mille provero' :)

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

oltre alle soluzioni proposte con perl e tr chi usa vim puo' usare:
:%s/\n//g

Rispondi