On 13.7.2016 0:30, Milan Cizek wrote:
asi je to OT, ale nemůžu dohledat příčinu rozdílného chování tohoto příkazu:
Teda, kdyz uz v ramci te radky volam 'sed' tak bych to vyresil cele v
nem. Bylo by mi lito pameti i procesoru na volani awk:
df -T | sed '1d;s/^[^ ]* *\([^ ]*\) *\([^ ]* *\)\{4\}\([^ ]*\) */\1|\3/;'
Regularni vyrazy obecne nejsou moc citelny, ale ve skutecnosti je to jen
nekolik opakovani stale stejneho popisu formatu jednoho sloupce vystupu
- no a pak vyrazeni tech, ktere chci.
Ovsem, pokdu se to cele ma volat z PERLu, tak by mi bylo lito volat i
ten 'sed' a zrejme bych skoncil na necem takovem:
open(DAT,"/bin/df -T |") || die "Could not open the file";
while(<DAT>){
next if $. < 2; # Skip first line
my @line = split;
print "$line[1]|$line[6]\n";
}
close(DAT);
Na to ses ale neptal ...
df -T | sed 1d | awk '{gsub(/\s+$/, //, $7) $7; print $2 "|" $7}'
dělá přesně co chci
Jakmile to ale dám do perlu, pak mi tam ty mezery za $7 zůstávají... :(
my @df = `df -T | sed 1d | awk '{gsub(/\\s+\$/, //, \$7) \$7; print \$2 "|"
\$7}'`;
print Dumper(\@df);
Me ne - a predpokladam, ze ani tobe ne, ze jen spatne koukas. To co na
konci "prebyva" neni mesera, ale znak konce radku. Ktery tam byl i kdyz
to nebylo v perlu.
Nemam perl rad a nejsem s nim kamarad, tak ti nereknu jak ho presvedcit,
aby se spravne vyporadal s koncema radku. Ale pokud v perlu pises, tak
to urcite zvladnes sam.
Dan
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l