Portál AbcLinuxu, 14. listopadu 2025 19:08
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.