Portál AbcLinuxu, 6. května 2025 22:56
echo 000005978 | sed -re "s/^0+//" 5978
$ echo 00000012000 >/tmp/filename.txt $ variable=$(cat /tmp/filename.txt) $ echo ${variable##*(0)} 12000
echo ${variable##*0}
mike@unicorn:~> var=00000012000 mike@unicorn:~> echo ".${var##*0}." .. mike@unicorn:~> echo ".${var##*(0)}." .12000.
$ var="000005978" $ echo "${var##*0}" 5978 $ echo ""{var##*(0)}" 000005978
> var=00000012000 > echo ".${var##*0}." .. > echo ".${var##*(0)}." .00000012000.
shopt -s extglobjinak to dopadne takto.
$[10#$var]
$[10#$var]a
${10#$var}Díky
Velký. :-)
První znamená "číslo, které je v proměnné var
(v desítkové soustavě)" (tedy aspoň za předpokladu, že proměnná obsahuje jen číslice, ne třeba "1+1").
To druhé je "hodnota desátého parametru po odstranění případné nejmenší počáteční části odpovídající obsahu proměnné var
(ve smyslu expanze wildcards)".
sed
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.