linux:bash:grep

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:grep [02/11/2016 09:47] – [uso] matelinux:bash:grep [13/12/2019 07:30] (actual) – [otras utilidades similares] mate
Línia 1: Línia 1:
 = grep = grep
 == uso == uso
-es una utilidad de línea de comando para buscar expresiones regulares dentro de cadenas.+es una utilidad de línea de comando para buscar [[tech:regexp:start|expresiones regulares]] dentro de cadenas.
  
   * ''$ grep''   * ''$ grep''
Línia 13: Línia 13:
     * -c : count     * -c : count
     * -r : búsqueda recursiva     * -r : búsqueda recursiva
 +    * -l : mostrar solo el nombre del fichero que hace match
 +
 +== otras utilidades similares
 +  * **riggrep** : (no en repos por defecto de Debian) -> [[https://github.com/BurntSushi/ripgrep]]
 +
  
-== expresiones regulares 
  
 == ejemplos == ejemplos
-  * buscar una cadena en una serie de ficheros:<code>find . -name "*.java" -print0 | xargs -0 grep -i ".*Legacy.*xmi"</code>+  * buscar una cadena en una serie de ficheros:<code bash>find . -name "*.java" -print0 | xargs -0 grep -i ".*Legacy.*xmi"</code>
   * usar un fichero de apoyo de ficheros para realizar acciones sobre los mismos   * usar un fichero de apoyo de ficheros para realizar acciones sobre los mismos
     * extraido de dokuwiki     * extraido de dokuwiki
     * permite comentarios en el fichero TXT     * permite comentarios en el fichero TXT
-<code>+<code bash>
 grep -Ev "^($|#)" files2remove.txt | xargs -n 1 rm -fd grep -Ev "^($|#)" files2remove.txt | xargs -n 1 rm -fd
 </code> </code>
-<code files2remove.txt>+<code txt files2remove.txt>
 # removed in 2011-05-25 # removed in 2011-05-25
 conf/words.aspell.dist conf/words.aspell.dist
Línia 37: Línia 41:
 inc/lang/cs/subscribermail.txt inc/lang/cs/subscribermail.txt
 </code> </code>
 +  * buscar cadenas no coincidentes entre 2 ficheros: <code bash>grep -vf fichero1 fichero2</code><code bash>grep -vxFf ItemsListtoAvoid.txt AllItemsList.txt > ItemsDifference.txt</code>
 +  * filtrado en vivo: <code bash>tail -f some_log_file.log | grep --line-buffered the_thing_i_want</code>
 +  * búsqueda de 2 palabras:<code bash>
 +grep -e 'palabra1' -e 'palabra2' fichero
 +grep 'palabra1\|palabra2\|palabra3' fichero
 +grep -E 'palabra1|palabra2' fichero
 +egrep -w 'palabra1|palabra2' fichero
 +</code>
 +  * mostrar líneas sin comentarios:<code bash>grep -v ^# <fichero> | grep .</code>
 +    * primera parte descarta toda aquella línea que empiece por #
 +    * segunda parte solo deja pasar líneas no vacías
 +  * generar contraseña:<code bash>strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo</code>
  • linux/bash/grep.1478105220.txt.gz
  • Darrera modificació: 02/11/2016 09:47
  • per mate