Portál AbcLinuxu, 13. května 2024 15:18


Dotaz: Jak vypsat jen část textu?

25.7.2012 11:38 RR
Jak vypsat jen část textu?
Přečteno: 365×
Odpovědět | Admin
Jak můžu načíst znaky mezi prvním znakem zprava _ a mezi druhou . zprava

Tučně označený text bych potřeboval vypsat

fsdfsdf_fsdf_7897_fsfd_fsfs_fsdfsdffsd_dass.dasdasd.asd.dcd.cdd
ergbcvb_dsfsfd_ssfsfs_ccxfsd_ssdsd.dass.dasd-asd.asdc.dgzd.erdd
Díky moc za pomoc
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 25.7.2012 12:38 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Jak vypsat jen část textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
nevím co myslíte načíst?

ale předpokládám, že z tohohle se bude dat vycházet:

perl -nE 'say $1 if m/([^_]*)\.[^\.]*\.[^\.]*$/'

This would have been so hard to fix when you don't know that there is in fact an easy fix.
25.7.2012 12:39 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Jak vypsat jen část textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Dost bude zalezat aj na danom jazyku, ale kedze si na tomto fore, tak tu su dve riesenia z mnohych. Vo var je hodnota kazdeho riadku jednotlivo, takze ak je to v subore, tak v bashi pomocou while read napriklad a pre sed nahradime cast <<<"$var" za cestu k suboru.

#! /bin/bash
if [[ "$var" =~ ^.*_(.*)\..*\..*$ ]]
then 
        echo ${BASH_REMATCH[1]}
fi

alebo

sed 's/^.*_\(.*\)\..*\..*$/\1/g' <<<"$var"
26.7.2012 18:18 pm
Rozbalit Rozbalit vše Re: Jak vypsat jen část textu?
awk -F_ '{print $2}'
26.7.2012 23:33 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jak vypsat jen část textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
foo="fsdfsdf_fsdf_7897_fsfd_fsfs_fsdfsdffsd_dass.dasdasd.asd.dcd.cdd
ergbcvb_dsfsfd_ssfsfs_ccxfsd_ssdsd.dass.dasd-asd.asdc.dgzd.erdd"

foo=${foo##*_}
foo=${foo%.*.*}

echo "$foo"
27.7.2012 09:45 pet
Rozbalit Rozbalit vše Re: Jak vypsat jen část textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
rev | cut -d. -f3- | cut -d_ -f1 | rev

;-)
27.7.2012 10:19 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak vypsat jen část textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Využijte toho, že regulární výrazy jsou standardně „hladové“, tj. zástupné znaky vyhoví co nejdelšímu řetězci.
.*_([^_.]*\.[^_.]*)[^_.]*\.[^_.]*

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.