[bash] Togliere spazi e fine riga
Come faccio a togliere tutti gli spazi e le righe vuote da un file di testo? In pratica vorrei mettere tutto quello che e' scritto nel file su una sola riga. Grazie
Re: [bash] Togliere spazi e fine riga
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Andrea Ganduglia wrote: Come faccio a togliere tutti gli spazi e le righe vuote da un file di testo? In pratica vorrei mettere tutto quello che e' scritto nel file su una sola riga. Intendi togliere anche tutti gli spazi tra le parole o solo le righe vuote e gli a capo? Per togliere le righe vuote (non ho egrep sotto mano e vado a naso) $egrep -v ^\s*$ file file.out forse in egrep gli spazi sono gestiti con la classe [:space:] ma non ricordo di preciso, percui quello sopra diventa $egrep -v ^[:space:]*$ file file.out Per togliere gli a capo al momento non mi viene in mente :) Ciao D. -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (MingW32) iD8DBQFBwV7Mxtglw1pRrJ0RAm1uAJ9TXSMXO4z64bQqsCeTLGQ9X4RvQwCgiiQK rchb9pXmVbeQdGPCXakN50s= =DeWR -END PGP SIGNATURE-
Re: [bash] Togliere spazi e fine riga
Come faccio a togliere tutti gli spazi e le righe vuote da un file di testo? In pratica vorrei mettere tutto quello che e' scritto nel file su una sola riga. Intendi togliere anche tutti gli spazi tra le parole o solo le righe vuote e gli a capo? Per togliere le righe vuote (non ho egrep sotto mano e vado a naso) $egrep -v ^\s*$ file file.out forse in egrep gli spazi sono gestiti con la classe [:space:] ma non ricordo di preciso, percui quello sopra diventa $egrep -v ^[:space:]*$ file file.out Per togliere gli a capo al momento non mi viene in mente :) Secondo me ti conviene usare uno script... se puoi usare php cli prova questo (Non conosco il perl :)) #!/usr/bin/php ?php if($fp=fopen($argv[1],r)) { for($output=;$data=fgets($fp);$output.=$data); //sostituisco gli a capo $output=str_replace(\n, ,$output); // sostituisco piĆ¹ di due spazi con uno spazio $output=preg_replace(/\s{2,}/, ,$output); echo $output; } else echo questo file non mi piace; ? $ ./xxx.php file_con_gli_spazi_e_gli_a_capo.txt file_nuovo.txt
Re: [bash] Togliere spazi e fine riga
On Thu, 16 Dec 2004 11:46:43 +0100, petdog [EMAIL PROTECTED] wrote: Secondo me ti conviene usare uno script... se puoi usare php cli prova questo E' esattamente quello che ho fatto, grazie!
Re: [bash] Togliere spazi e fine riga
Andrea Ganduglia wrote: On Thu, 16 Dec 2004 11:46:43 +0100, petdog [EMAIL PROTECTED] wrote: Secondo me ti conviene usare uno script... se puoi usare php cli prova questo Apparte la preferenza personalissima per il perl :) ma i veri uomini :) queste cose non le facevano con sed e/o awk ? Bob
Re: [bash] Togliere spazi e fine riga
:) queste cose non le facevano con sed e/o awk ? Bob bello awk, non lo conoscevo... (non sono affatto un vero uomo:) comunque ho cercato di fargli fare quel lavoretto e non mi riesce awk -f script.awk file_input.txt nuovo.txt script.awk: (secondo il man gsub fa una sostituzione dell'espressione regolare su tutto l'input) BEGIN {} { gsub(/\n/,) gsub(/\s{2,}/,) } END {print} mi stampa l'ultima riga del file ()
Re: [bash] Togliere spazi e fine riga
petdog wrote: :) queste cose non le facevano con sed e/o awk ? Bob bello awk, non lo conoscevo... (non sono affatto un vero uomo:) comunque ho cercato di fargli fare quel lavoretto e non mi riesce Ehm ... baro ... Google: awk remove trailing blanks - secondo risultato: The most common and straightforward anwer to remove the trailing spaces on all line of a file was: cat infile | sed -e 's/ *$//' outfile What this means: -eexecute this command for every line s substitue / *$/ any number of spaces, followed by the end of the line... //...with nothing Fammi sapere :) Bob