Utilizzando Perl, come posso sostituire tutti gli spazi vuoti in un file con a capo?
-
19-09-2019 - |
Domanda
Per esempio di file di testo:
Speak friend and enter
utilizzando uno script in Perl per rimuovere gli spazi e sostituire con il ritorno a capo
Speak friend and enter
Soluzione
perl -p -e 's/\s+/\n/g'
Altri suggerimenti
creare un file test.pl:
open my $hfile, $ARGV[0] or die "Can't open $ARGV[0] for reading: $!";
while( my $line = <$hfile> )
{
$line =~ s/\s+/\n/g;
print $line;
}
close $hfile;
quindi eseguirlo come:
perl test.pl yourfile.txt
o, se non si desidera utilizzare un file, è possibile fare tutto da linea di comando come:
perl -p -e "s/\s+/\n/g" yourfile.txt
#!/usr/bin/perl -l
use strict;
use warnings;
print join "\n", split while <>;
È possibile utilizzare sed
sed -e "s/[ ]/\n/g"
o qualsiasi cosa che funziona con le espressioni regolari
"s/[ ]/\n/g"
Se vuoi inplace editing è possibile utilizzare l'opzione -i. Scopri perlrun per vedere come è fatto, ma, in fondo:
perl -p -i.bak -e 's/\s+/\n/g'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow