linux:bash:grep

Aquesta és una revisió antiga del document


grep

es una utilidad de línea de comando para buscar expresiones regulares dentro de cadenas.

  • $ grep
    • -n : muestra número de línea
    • -v : inverso, muestra las líneas que NO tienen la cadena
    • -w : palabras completas
    • -x : lineas completas, no fragmentos
    • -P : uso del formato PERL de expresiones regulares
    • –color : marca en color las coinicidencias
    • -i : –ignore-case
    • -c : count
    • -r : búsqueda recursiva
  • buscar una cadena en una serie de ficheros:
    find . -name "*.java" -print0 | xargs -0 grep -i ".*Legacy.*xmi"
  • usar un fichero de apoyo de ficheros para realizar acciones sobre los mismos
    • extraido de dokuwiki
    • permite comentarios en el fichero TXT
grep -Ev "^($|#)" files2remove.txt | xargs -n 1 rm -fd
files2remove.txt
# removed in 2011-05-25
conf/words.aspell.dist
lib/styles/style.css
 
# removed in 2010-11-07
inc/lang/ar/subscribermail.txt
inc/lang/az/subscribermail.txt
inc/lang/bg/subscribermail.txt
inc/lang/ca/subscribermail.txt
inc/lang/ca-valencia/subscribermail.txt
inc/lang/cs/subscribermail.txt
  • buscar cadenas no coincidentes entre 2 ficheros:
    grep -vf fichero1 fichero2
  • filtrado en vivo:
    tail -f some_log_file.log | grep --line-buffered the_thing_i_want
  • búsqueda de 2 palabras:
    grep -e 'palabra1' -e 'palabra2' fichero
    grep 'palabra1\|palabra2\|palabra3' fichero
    grep -E 'palabra1|palabra2' fichero
    egrep -w 'palabra1|palabra2' fichero
  • linux/bash/grep.1516616257.txt.gz
  • Darrera modificació: 22/01/2018 02:17
  • per mate