Bash regularni vyraz
Milan Zamazal
mz na pdm.pvt.net
Pátek Červenec 23 10:06:25 CEST 1999
>>>>> "DR" == David Rohleder <davro na ics.muni.cz> píše:
DR> vyraz ${a//[^\/]*\//../} zameni pouze prvni vyskyt
Mně to dělá:
$ X=nazdar/ahoj/tady
$ echo ${X//[^\/]*\//../}
../tady
což je správně -- nezapomenout, že // matchuje nejdelší výskyt,
tj. požere se vše až po poslední lomítko.
Šlo by to např. takhle:
Y='..'; N=${X//[^\/]/}; N=${#N}; I=0;
while [ $I -lt $N ]; do Y=../$Y; I=$((I+1)); done
Možná to jde i nějak výrazně inteligentněji, chybí mi regulární výrazy.
Milan Zamazal
--
Některé zajímavé free softwarové projekty:
Česká nadace pro podporu free softwaru, http://www.freesoft.cz
Debian CZ/SK, http://www.debian.cz
Debian GNU/{Linux,Hurd}, http://www.debian.org
Další informace o konferenci Linux