GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar líneas que contienen una cadena en Linux

/tmp/miarchivo

first line text
wanted text
other text

el comando

$ grep -n "wanted text" /tmp/myfile | awk -F  ":" '{print $1}'
2

El -n cambiar a grep antepone cualquier línea coincidente con el número de línea (seguido de : ), mientras que el segundo comando usa dos puntos como separador de columnas (-F ":" ) e imprime la primera columna de cualquier línea. El resultado final es la lista de números de línea con un fósforo.


Además de grep , también puede usar otras utilidades como awk o sed

Aquí hay algunos ejemplos. Digamos que desea buscar una cadena is en el archivo llamado GPL .

Tu archivo de muestra

[email protected]:~$ cat -n GPL 
     1    The GNU General Public License is a free, copyleft license for
     2    The licenses for most software and other practical works are designed
     3  the GNU General Public License is intended to guarantee your freedom to
     4  GNU General Public License for most of our software;
[email protected]:~$ 

1. grep

[email protected]:~$ grep is GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

2. awk

[email protected]:~$ awk /is/ GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

3. sed

[email protected]:~$ sed -n '/is/p' GPL
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

Espero que esto ayude


La familia de comandos grep (incluidos egrep, fgrep) es la solución habitual para esto.

$ grep pattern filename

Si está buscando el código fuente, entonces ack puede ser una mejor opción. Buscará subdirectorios automáticamente y evitará archivos que normalmente no buscaría (objetos, directorios SCM, etc.)


La forma habitual de hacer esto es con grep , que usa un patrón de expresiones regulares para hacer coincidir las líneas:

grep 'pattern' file

Se emitirá cada línea que coincida con el patrón. Si desea buscar solo cadenas fijas, use grep -F 'pattern' file . fgrep es la abreviatura de grep -F .

También puedes usar sed :

sed -n '/pattern/p' file

O awk :

awk '/pattern/' file

Linux
  1. Cómo usar BUSCAR en Linux

  2. Cómo encontrar texto específico usando GREP en Linux

  3. Comando de Linux:¿Cómo 'buscar' solo archivos de texto?

  4. ¿Cómo encontrar archivos de texto que no contengan texto en Linux?

  5. ¿Cómo encuentro todos los archivos que contienen texto específico en Linux?

Cómo encontrar una cadena en un archivo en Linux

Cómo encontrar la dirección IP en Linux

Cómo encontrar el nombre de host en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo encontrar las líneas más largas en un archivo en Linux

Cómo usar grep en Linux