Cómo buscar texto en archivos en Linux

How Find Text Files Linux



Para un administrador de sistemas, trabajar con archivos de texto es un fenómeno común. ¿Quizás necesite encontrar una sección específica de montones de archivos de registro para solucionar algún problema? ¿O necesita encontrar rápidamente el documento que contiene información esencial?

En el caso de Linux, existen numerosos métodos para buscar textos en archivos. Es posible usar tanto herramientas integradas como aplicaciones de terceros. Vea cómo encontrar textos en archivos en Linux.







Encontrar texto en archivos

Dependiendo de la cantidad de archivos en los que tenga que realizar una búsqueda, hay dos formas de realizar la búsqueda de texto: automática o manual. Si tiene que trabajar con un par de archivos de texto, la búsqueda manual es más adecuada. Sin embargo, si hay cientos de archivos de texto, la búsqueda automatizada es la más eficiente.



Para la búsqueda automática, usaremos grep. Grep viene preinstalado en cualquier distribución de Linux. En cuanto a la búsqueda manual, cualquier editor de texto moderno hará el trabajo.



Encuentra texto en archivos usando grep

En Linux, grep es la herramienta predeterminada para buscar textos. Su nombre se deriva del comando ed g / re / p que significa buscar globalmente una expresión regular e imprimir líneas coincidentes. Está disponible en cualquier distribución moderna de Linux.





Grep es una herramienta de línea de comandos. Su estructura de mando es la siguiente.

$sujeción <opción> <expresión regular> <ruta de archivo>

Como sugiere el nombre de grep, el patrón a buscar se describe usando una expresión regular. La expresión regular es un tipo especial de cadena que describe un patrón para hacer coincidir, ubicar y administrar. Para obtener más información sobre grep y expresiones regulares, consulte usando grep y egrep con expresión regular .



Para fines de demostración, tome un archivo de texto de muestra. En este ejemplo, descargue el Archivo de texto GNU General Public License v3.0 .

Búsqueda básica

La forma fundamental de usar grep es buscar una cadena básica.

Eche un vistazo al siguiente comando grep. Buscará la palabra GNU en el archivo de texto.

$sujeción 'ÑU'glp3.0.TXT

Para mostrar el número de línea, use la bandera -n.

$sujeción -norteGNU gpl-3.0.TXT

Para realizar una búsqueda que no distingue entre mayúsculas y minúsculas mediante grep, utilice la marca -i.

$sujeción -nignu gpl-3.0.TXT

Es posible que no desee ver las coincidencias de búsqueda, sino solo el nombre del archivo donde ocurrió la coincidencia en algunas situaciones. Para imprimir solo el nombre del archivo, use el indicador -l. Aquí, el asterisco indica que se deben usar todos los archivos de texto en el directorio actual.

$sujeción -losñu*

También podemos canalizar la salida de otros comandos a grep.

$gatoglp3.0.TXT| sujeción -norteÑU

Expresión regular

Regex ofrece una forma inteligente de ajustar la búsqueda. Tiene sus propias reglas. Sin embargo, diferentes aplicaciones y lenguajes de programación implementan expresiones regulares de manera diferente. Aquí hay un par de ejemplos que puede usar con grep.

Para definir que la cadena se encuentra al comienzo de una línea, use el símbolo de intercalación (^).

$sujeción -norte^ GNU gpl-3.0.TXT

Para definir que la cadena se encuentra al final de una línea, use el signo de dólar ($).

$sujeción -nortea $ gpl-3.0.TXT

Para describir que puede haber cualquier carácter en una determinada ubicación del patrón, utilice el carácter de punto (.). Por ejemplo, la expresión G.U es válida si hay algún carácter entre G y U.

$sujeción -norteG.U gpl-3.0.TXT

Para describir que puede haber un subconjunto de caracteres en una ubicación particular del patrón, use los corchetes ([]). Por ejemplo, la expresión t [wo] o dice que la coincidencia es válida para dos y solo.

$sujeción -nortet[Dónde]o gpl-3.0.TXT

Expresión regular extendida

Como sugiere el nombre, una expresión regular extendida puede hacer cosas más complejas que las expresiones regulares básicas. Para usar expresiones regulares extendidas con grep, debe usar el indicador -E.

$sujeción -Nació <extended_regex> <expediente>

Para buscar dos cadenas diferentes, use los operadores OR (|).

$sujeción -NacióÑU|General|Licencia gpl-3.0.TXT

Encontrar texto en archivos

Ahora viene la parte principal. En lugar de decirle manualmente a grep el archivo para realizar la búsqueda, grep puede hacerlo automáticamente. En el siguiente comando, grep usará todos los archivos de texto disponibles en el directorio actual para buscar el patrón.

$sujeción <regex> *

Si desea grep para realizar la búsqueda en un directorio diferente, debe especificar la ubicación.

$sujeción <regex> <ruta de directorio>

Si hay carpetas, grep no las explora de forma predeterminada. Para decirle a grep que busque de forma recursiva, use el indicador -R.

$sujeción -nR <regex> <ruta de directorio>

Grip GUI

Si prefiere trabajar con GUI pero aún desea disfrutar de las funciones de grep, consulte searchmonkey. Es una solución de interfaz para grep. El paquete está disponible en casi todas las principales distribuciones de Linux.

Encuentra texto en archivos usando nano

GNU Nano es un editor de texto simple y poderoso que viene con cualquier distribución de Linux. Tiene funciones integradas para buscar texto en un archivo de texto.

Tenga en cuenta que en este método, debe abrir el archivo de texto y buscar manualmente. Es factible si solo hay un puñado de archivos de texto con los que trabajar. Si hay más, entonces usar grep es la opción más óptima.

Abra el archivo de texto en nano.

$nano <ruta de archivo>

Para buscar una cadena que coincida, presione Ctrl + W. Después de escribir la cadena a buscar, presione Entrar.

Encuentra texto en archivos usando Vim

Vim es un editor de texto muy conocido y reputado. Es el equivalente en línea de comandos de un editor de texto moderno. Vim viene con numerosas funciones avanzadas como complementos, macros, autocompletado, filtros, etc.

Al igual que nano, Vim funciona con un solo archivo a la vez. Si tiene varios archivos de texto, usar grep es la forma más óptima de hacerlo.

Para buscar en un archivo de texto, primero ábralo en Vim.

$yo vine <ruta de archivo>

Ingrese el siguiente comando de Vim y presione Enter.

$:/<término de búsqueda>

Encuentra texto en archivos usando el Editor de texto GNOME

El editor de texto GNOME es el editor de texto que viene con el escritorio GNOME. Es un editor de texto simplista con todas las funciones básicas que esperaría. Es una buena alternativa a los editores de texto de línea de comandos.

Al igual que nano y vim, se aplica la misma precaución a este método. Si la cantidad de archivos de texto es grande, es mejor que se quede con grep.

Abra el archivo de texto en el Editor de texto. Presione Ctrl + F para que aparezca la barra de búsqueda.

Encuentra texto en archivos usando VS Code

Visual Studio Code es un potente editor de texto con toneladas de funciones. Está optimizado para que los programadores lo utilicen como si fuera un IDE completo. Está disponible en casi todas las principales distribuciones de Linux.

Instale el paquete instantáneo de Visual Studio Code.

$sudoquebrarInstalar en pccódigo--clásico

Abra el archivo de texto en VS Code. Presione Ctrl + F para comenzar a buscar.

Pensamientos finales

Existen numerosas formas de buscar texto en archivos. Es una tarea fácil de dominar. Se recomienda encarecidamente dominar el comando grep porque ofrece el mayor valor en términos de eficiencia y facilidad de uso.

Si prefiere la GUI, existen numerosos editores de texto para elegir. Cualquier editor de texto moderno proporcionará la opción de búsqueda de texto.

¡Feliz informática!