conceptos-dsls-domainspecificlanguage-dsl---sed
Sed (linux command)
De Stream Editor, es un comando de linux se utiliza para procesar texto de entrada (stream) generando una salida. Utiliza su propio lenguaje similar a regexp para definir las transformaciones a realizar en forma declarativa.
echo **abcd123** | sed '**s**#\**([a-z]***\**).***#**\1**#'
Produce: ** abcd**
El parámetro que le pasamos a sed tiene la siguiente sintaxis:
s#pattern#sustitution#'
Pattern es lo que solemos llamar **regular expression. **Y tiene una sintaxis y elementos específicos ya definidos que podemos usar. * En nuestro caso:
- ( ) : delimita un token, para luego poder ser referenciado numéricamente en la substitución como “\1“
- [a-z]: cualquier caracter entre “a” y “z”
- *[a-z] : **muchas veces, cualquier caracter entre “a” y “z”
- . (punto) : cualquier caracter
- .* : cualquier caracter, muchas veces
En nuestro ejemplo sed va a matchear abcd123
abcd = [a-z]* = \1
123 = .*
es decir “(1)123”