| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia |
| linux:bash:sed [21/08/2018 00:18] – [ejemplos] mate | linux:bash:sed [10/04/2019 00:30] (actual) – [ejemplos avanzados] mate |
|---|
| * ''!'' : negar la condición | * ''!'' : negar la condición |
| * ''q'' : finalizar procesamiento de fichero | * ''q'' : finalizar procesamiento de fichero |
| | <code bash> |
| | sed 's/busca/reemplaza/g' /path/to/file(s) |
| | </code> |
| |
| == parámetros | == parámetros |
| <code bash>sed -i "3,5d" distros-deb.txt # de la línea 3 a la 5 | <code bash>sed -i "3,5d" distros-deb.txt # de la línea 3 a la 5 |
| sed -i "2,$d" distros-deb.txt # de la línea 2 al final</code> | sed -i "2,$d" distros-deb.txt # de la línea 2 al final</code> |
| | |
| | ejemplo docker |
| | <code bash>sed -i /etc/ssh/sshd_config \ |
| | -e 's/#PermitRootLogin.*/PermitRootLogin no/' \ |
| | -e 's/#RSAAuthentication.*/RSAAuthentication yes/' \ |
| | -e 's/#PasswordAuthentication.*/PasswordAuthentication no/' |
| | </code> |
| |
| == ejemplos avanzados | == ejemplos avanzados |
| añadir texto a una línea, respetando el contenido existente (y haciendo match). Uso de subexpresión | añadir texto a una línea, respetando el contenido existente (y haciendo match). Uso de subexpresión (backreference) |
| <code bash>sed -i "1,12s/\(host: \)[^ ]*/\1localhost/" config/database.yml</code> | <code bash>sed -i "1,12s/\(host: \)[^ ]*/\1localhost/" config/database.yml</code> |
| * ''-i'' : sobrrescribe el fichero (config/database.yml en este caso) | * ''-i'' : sobrrescribe el fichero (config/database.yml en este caso) |
| * ''(host: )'' : busca esa cadena, pero además la guarda. En la instrucción ( y ) están escapados <- subexpresión | * ''(host: )'' : busca esa cadena, pero además la guarda. En la instrucción ( y ) están escapados <- subexpresión |
| * ''[^ ]*'' : cualquier número de caracteres que no sean espacios ?? | * ''[^ ]*'' : cualquier número de caracteres que no sean espacios ?? |
| * ''\1 <cadena>'' : recupera el texto guardado en la anterior expresión y le añade <cadena>''.. el 1 está escapado! | * ''\1 <cadena>'' : recupera el texto guardado en la anterior expresión y le añade <cadena>.. el 1 está escapado! |
| * | |
| | insertar línea antes de match, backup del fichero modificado |
| | <code bash> |
| | sed -i.bak '/<\/tomcat-users>/ i\<user username="admin" password="password" roles="admin,manager-gui,admin-gui"/>' /opt/tomcat/conf/tomcat-users.xml |
| | </code> |
| | |
| | === búsquedas |
| buscar frases de un texto que tengas 6 palabras (y acaben en algo que no sea una letra): | buscar frases de un texto que tengas 6 palabras (y acaben en algo que no sea una letra): |
| <code bash>grep -E '^([a-zA-Z]+[^a-zA-Z]+){6}$' frases</code> | <code bash>grep -E '^([a-zA-Z]+[^a-zA-Z]+){6}$' frases</code> |