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
Reply to: