Portál AbcLinuxu, 14. května 2025 03:59

Dotaz: Perl oneliner substituce s pocitanim

22.9.2014 15:07 Terka | skóre: 13
Perl oneliner substituce s pocitanim
Přečteno: 268×
Odpovědět | Admin
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:


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 22.9.2014 16:42 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
Odpovědět | | Sbalit | Link | Blokovat | Admin
pokud se budu držet vašeho "řešení", pak třeba echo "1 2"|perl -ple 's/(.) (.)/join q{ }, ($1,$2,$1+$2)/e'
This would have been so hard to fix when you don't know that there is in fact an easy fix.
22.9.2014 16:57 Terka | skóre: 13
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
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.
22.9.2014 17:17 Terka | skóre: 13
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
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!
Řešení 1× (Terka (tazatel))
22.9.2014 18:26 luky
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
perl -ple 's:(\[.+?\])(\[.+?\])(\[.+?\])(\[.+?\]) =.+?\[(..)\],( CorrID.+?\]), Times\:\((.+)( M\: | G\: | IR\: )(\d+)(.*)ALL\: (\d+)\):join ";",$2,$3,$4,$5,$11,$6,$11-$9,$9:e'
22.9.2014 19:24 Terka | skóre: 13
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
Diky moc, tohle chapu. ;)
22.9.2014 16:55 luky
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
Odpovědět | | Sbalit | Link | Blokovat | Admin
echo 1 2 3 4 | perl -MList::Util -pale '$_ .= " " . List::Util::sum @F;'
1 2 3 4 10
xkucf03 avatar 23.9.2014 11:09 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Perl oneliner substituce s pocitanim
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přehlednější mi přijde spíš tenhle způsob:
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";
    }';
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.