Portál AbcLinuxu, 14. května 2025 03:59
Ahoj, poradite mi jak upravit oneliner aby vyhovoval zadani a pocital soucet sloupcu:
vstup:1 2
vystup:1 2 3
echo "1 2"|perl -ple 's:(.) (.):$1 $2
neco jako echo "1 2"|perl -ple 's:(.) (.):$1 $2 $1+$2:e' mi nefunguje
Diky!
Řešení dotazu:
echo "1 2"|perl -ple 's/(.) (.)/join q{ }, ($1,$2,$1+$2)/e'
Diky.
Jde mi o to zda se da zaroven nahrazovat a pocitat.
Mam slozitejsi log a neco oznacuji do skupin (), neco vynechavam a pak tiskunu ony vybrane() v jinem poradi a nektere potrebuji scitat
Rada bych to delala pres podobny oneliner viz vyse
.
Nefunguje mi to. Nechapu to join q{} Budu tedy konkretni: [INFO ][Aug 08|00:02:46.176][Thread-363][Threadname] ====== done [XX], CorrID:[398912771023675], Times:(MRqC: 0, MRqM: 0, M: 416, MReP: 1, ALL: 417) perl -ple 's:(\[.+?\])(\[.+?\])(\[.+?\])(\[.+?\]) =.+?\[(..)\],( CorrID.+?\]), Times\:\((.+)( M\: | G\: | IR\: )(\d+)(.*)ALL\: (\d+)\):$2;$3;$4;$5;$11;$6;$11-$9;$9:g' tam kde je tucna, bych rada mela rozdil $11-$9 Diky!
perl -ple 's:(\[.+?\])(\[.+?\])(\[.+?\])(\[.+?\]) =.+?\[(..)\],( CorrID.+?\]), Times\:\((.+)( M\: | G\: | IR\: )(\d+)(.*)ALL\: (\d+)\):join ";",$2,$3,$4,$5,$11,$6,$11-$9,$9:e'
echo 1 2 3 4 | perl -MList::Util -pale '$_ .= " " . List::Util::sum @F;' 1 2 3 4 10
echo "1 2" | perl -ne 'if (/(\d) (\d)/) { print "$1 + $2 = " . ($1 + $2) . "\n"; }'a složitější věci bych stejně radši rozepsal na víc řádků.
#!/bin/bash echo "1 2" | perl -ne ' if (/(\d) (\d)/) { print "$1 + $2 = " . ($1 + $2) . "\n"; }';
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.