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:45] – [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 8: Línia 8:
     * -w : palabras completas     * -w : palabras completas
     * -x : lineas completas, no fragmentos     * -x : lineas completas, no fragmentos
-== expresiones regulares +    * -P : uso del formato PERL de expresiones regulares 
-  * \w :  +    * --color : marca en color las coinicidencias 
-== opciones +    * -i : --ignore-case 
-  * -P : uso del formato PERL de expresiones regulares +    * -count 
-  * --color : marca en color las coinicidencias +    * -r : búsqueda recursiva 
-  * -i : --ignore-case +    * -mostrar solo el nombre del fichero que hace match 
-  * -: --invert-match + 
-  * -count +== otras utilidades similares 
-  * -búsqueda recursiva+  * **riggrep** : (no en repos por defecto de Debian) -> [[https://github.com/BurntSushi/ripgrep]] 
 + 
 + 
 == 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 38: 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.1478105150.txt.gz
  • Darrera modificació: 02/11/2016 09:45
  • per mate