Portál AbcLinuxu, 29. října 2025 02:43
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.