Portál AbcLinuxu, 14. května 2025 02:07
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.erddDíky moc za pomoc
perl -nE 'say $1 if m/([^_]*)\.[^\.]*\.[^\.]*$/'
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"
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"
.*_([^_.]*\.[^_.]*)[^_.]*\.[^_.]*
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.