Hay 3 formas diferentes del famoso comando grep. La lista a continuación también diferencia entre sus casos de uso.
- fgrep :Realiza una búsqueda rápida de patrones simples. Use este comando para ubicar rápidamente patrones sin caracteres comodín, útil cuando busca una palabra común.
- grep :búsquedas de patrones usando expresiones regulares ordinarias.
- egrep :búsquedas de patrones usando expresiones regulares extendidas más poderosas.
fgrep (fast grep) busca en uno o más archivos líneas que coincidan con la cadena de texto especificada. El estado de salida es 0 si alguna línea coincide, 1 si no es así y 2 si hay errores. fgrep es más rápido que las búsquedas grep normales pero menos flexible:solo puede encontrar texto fijo, no expresiones regulares.
El comando fgrep es como grep, pero en lugar de aceptar una expresión regular, acepta una lista de cadenas fijas, separadas por saltos de línea. Es lo mismo que grep -F. Por ejemplo, si tiene un archivo de diccionario lleno de cadenas, una por línea:
# cat my_dictionary_file aardvark aback abandon ...
puede buscar convenientemente esas cadenas en un conjunto de archivos de entrada:
# fgrep -f my_dictionary_file inputfile1 inputfile2
Normalmente, usará la opción -f en minúsculas para hacer que fgrep lea las cadenas fijas de un archivo. También puede leer las cadenas fijas en la línea de comandos entre comillas, pero es un poco más complicado. Para buscar las cadenas uno, dos y tres en un archivo, debe escribir:
# fgrep 'one ### Note we are typing newline characters two three' myfile
fgrep es conveniente cuando se buscan caracteres no alfanuméricos como * y { porque se toman literalmente, no como caracteres de expresión regular.
Ejemplos de comandos fgrep
1. Para interpretar PATRÓN como una expresión regular extendida:
# fgrep --extended-regexp PATTERN # fgrep -E PATTERN
2. Para interpretar PATRÓN como una lista de cadenas fijas:
# fgrep -F PATTERN # fgrep --fixed-strings PATTERN
3. Para interpretar PATRÓN como una expresión regular básica:
# fgrep -G PATTERN # fgrep --basic-regexp PATTERN
4. Para interpretar PATTERN como una expresión regular de Perl:
# fgrep -P PATTERN # fgrep --perl-regexp PATTERN
5. Para usar PATRÓN como patrón:
# fgrep -e PATTERN, # fgrep --regexp=PATTERN
6. Para obtener patrones de ARCHIVO, uno por línea:
# fgrep -f FILE, --file=FILE
7. Para ignorar las distinciones entre mayúsculas y minúsculas tanto en el PATRÓN como en los archivos de entrada:
# fgrep -i PATTERN # fgrep --ignore-case PATTERN
8. Para invertir el sentido de coincidencia, para seleccionar líneas que no coincidan:
# fgrep -v PATTERN # fgrep --invert-match PATTERN
9. Para seleccionar solo aquellas líneas que contengan coincidencias que formen palabras completas:
# fgrep -w PATTERN # fgrep --word-regexp PATTERN
10. Para seleccionar solo aquellas coincidencias que coincidan exactamente con toda la línea:
# fgrep -x PATTERN # fgrep --line-regexp PATTERN
11. Para ignorar el caso:
# fgrep -y PATTERN
12. Para suprimir la salida normal; en su lugar, imprima un recuento de líneas coincidentes:
# fgrep -c PATTERN # fgrep --count PATTERN
13. Para mostrar en color:
# fgrep --color PATTERN
14. Para suprimir la salida normal; en su lugar, imprima el nombre de cada archivo de entrada, desde fuera no se esperará:
# fgrep -L PATTERN # fgrep --files-without-match PATTERN
15. Para suprimir la salida normal; en su lugar, imprima el nombre de cada archivo de entrada desde el que se imprimió la salida:
# fgrep -l PATTERN # fgrep --files-with-matches PATTERN
16. A la quietud; no escriba nada en la salida estándar Salga inmediatamente con estado cero si se encuentra alguna coincidencia:
# fgrep -q PATTERN # fgrep --quiet PATTERN # fgrep --silent PATTERN
17. Para dejar de leer un archivo después de NUM líneas coincidentes:
# fgrep -m NUM PATTERN # fgrep --max-count=NUM PATTERN
18. Para imprimir solo las partes coincidentes (no vacías) de una línea coincidente:
# fgrep -o PATTERN # fgrep --only-matching PATTERN
19. Para suprimir mensajes de error sobre archivos inexistentes o ilegibles:
# fgrep -s PATTERN # fgrep --no-messages PATTERN
20. Para imprimir el desplazamiento de bytes basado en 0 dentro del archivo de entrada antes de cada línea de salida:
# fgrep -b PATTERN # fgrep --byte-offset PATTERN
21. Para imprimir el nombre del archivo para cada coincidencia:
# fgrep -H PATTERN # fgrep --with-filename PATTERN
22. Para suprimir los prefijos de nombres de archivo en la salida:
# fgrep -h PATTERN # fgrep --no-filename PATTERN
23. Para mostrar la entrada que realmente proviene de la entrada estándar como entrada proveniente del archivo LABEL:
# fgrep -cd PATTERN | fgrep --label=mysearch -H PATTERN
24. Para prefijar cada línea de salida con el número de línea basado en 1 dentro de su archivo de entrada:
# fgrep -n PATTERN # fgrep --line-number PATTERN
25. Para asegurarse de que el primer carácter del contenido real de la línea esté en una tabulación:
# fgrep -T PATTERN # fgrep --initial-tab PATTERN
26. Para reportar compensaciones de bytes estilo Unix:
# fgrep -u PATTERN # fgrep --unix-byte-offsets PATTERN
27. Para generar un byte cero en lugar del carácter que normalmente sigue a un nombre de archivo:
# fgrep -Z PATTERN # fgrep --null PATTERN
28. Para imprimir NUM líneas de contexto final después de las líneas coincidentes:
# fgrep -A NUM PATTERN # fgrep --after-context=NUM PATTERN
29. Para imprimir NUM líneas de contexto inicial antes de las líneas coincidentes:
# fgrep -B NUM PATTERN # fgrep --before-context=NUM PATTERN
30. Para imprimir NUM líneas de contexto de salida:
# fgrep -C NUM PATTERN # fgrep --context=NUM PATTERN
31. Para procesar un archivo binario como si fuera texto:
# fgrep -a PATTERN /tmp/bin # fgrep -text PATTERN /tmp/bin
32. Suponer que el archivo es de tipo TYPE:
# fgrep --binary-files=TYPE PATTERN
33. Para Si un archivo de entrada es un dispositivo, FIFO o socket, use ACCIÓN para procesarlo:
# fgrep -D ACTION PATTERN # fgrep --devices=ACTION PATTERN
34. Para Si un archivo de entrada es un directorio, use ACCIÓN para procesarlo:
# fgrep -d ACTION PATTERN # fgrep --directories=ACTION PATTERN
35. Para omitir archivos cuyo nombre base coincida con GLOB:
# fgrep --exclude=GLOB PATTERN
36. Para omitir archivos cuyo nombre base coincida con cualquiera de los globos de nombre de archivo leídos de ARCHIVO:
# fgrep --exclude-from=FILE PATTERN
37. Para excluir directorios que coincidan con el patrón DIR de búsquedas recursivas:
# fgrep --exclude-dir=DIR PATTERN
38. Para procesar un archivo binario como si no contuviera datos coincidentes:
# fgrep -I PATTERN
39. Para buscar solo archivos cuyo nombre base coincida con GLOB:
# fgrep --include=GLOB
40. Para leer todos los archivos de cada directorio, recursivamente:
# fgrep -r PATTERN # fgrep -R PATTERN
41. Para usar el búfer de línea en la salida:
# fgrep --line-buffered PATTERN
42. Si es posible, use la llamada del sistema mmap para leer la entrada, en lugar de la lectura predeterminada:
# fgrep --mmap PATTERN
43. Para tratar los archivos como binarios:
# fgrep -U /tmp/file PATTERN # fgrep --binary /tmp/file PATTERN
44. Para tratar la entrada como un conjunto de líneas:
# fgrep -z PATTERN # fgrep --null-data PATTERN
45. Para mostrar la ayuda:
# fgrep -h
46. Para imprimir el número de versión del grep:
# fgrep -V