“Parameter substitution” en BASH…
... no haver-ho conegut abans!
29 d'octubre de 2009 @ 19:31No fa molt vaig descobrir la substitució de paràmetres en bash, i la veritat és que és una eina increïble que evita usos de sed, awk, o cut quan realment no fa falta.
A continuació reproduïsc una llista que he trobat a “BASH Cures Cancer“, un blog que pretén explicar les bondats del BASH per als Linuxers.
- Les variables es poden especificar de dues formes: $var o ${var}.
$ var='a.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4352'
$ echo ${var}
a.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4352
- ${#var} és la llargària de la variable.
$ echo ${#var}
42 - ${var:pos} genera una subcadena començant en la posició pos.
$ echo ${var:10}
2342%asd234#@.,&%,sdfgsdfgas4352 - ${var:pos:len} genera una subcadena començant a en la posició pos d’una llargària len.
$ echo ${var:10:5}
2342% - ${var#pattern} esborra el patró pattern començant pel principi de la variable. Aquesta versió para només troba l’expressió regular. ${var##pattern} és la versió extesa.
$ echo ${var#*,}
fssd2342%asd234#@.,&%,sdfgsdfgas4352
$ echo ${var##*,}
sdfgsdfgas4352 - ${var%pattern} elimina el patró pattern començant pel final de la variable. Aquesta versió para només troba l’expressió regular. ${var%%pattern} és la versió extesa.
$ echo ${var%,*}
a.ads,fssd2342%asd234#@.,&%
$ echo ${var%%,*}
a.ads - ${var/pattern/replacement} substitueix l’expressió regular pattern amb replacement una vegada.
$ echo ${var/a/A}
A.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4352 - ${var//pattern/replacement} substitueix l’expressió regular pattern amb replacement de manera global.
$ echo ${var//a/A}
A.Ads,fssd2342%Asd234#@.,&%,sdfgsdfgAs4352 - ${var/#pattern/replacement} si l’inici de la variable és com el patró pattern, es substitueix per replacement.
$ echo ${var/#a./llll}
llllads,fssd2342%asd234#@.,&%,sdfgsdfgas4352 - ${var/%pattern/replacement} si el final de la variable és com el patró pattern, es substitueix per replacement.
$ echo ${var/%352/llll}
a.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4llll
Segur que aquells que utilitzeu el shell habitualment i no coneixieu açò, li podeu traure molt de profit.
Publicat per Xavi Ivars a Linux, Programació |
3 comentaris »
