linux:bash:sed

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:bash:sed [21/08/2018 00:18] – [ejemplos] matelinux:bash:sed [10/04/2019 00:30] (actual) – [ejemplos avanzados] mate
Línia 21: Línia 21:
     * ''!'' : 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
Línia 54: Línia 57:
 <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)
Línia 62: Línia 72:
   * ''(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>
  • linux/bash/sed.1534835939.txt.gz
  • Darrera modificació: 21/08/2018 00:18
  • per mate