Está en la página 1de 6

COMANDOS LNUX:

“AÑO DE CONSOLIDACION
DEL MAR DE GRAU”

NOMBRE: Diana C. Inga


Prado
PROFESOR: L. Miguel
Castillo Novoa
CURSO: Plataformas
Operativas
TEMA: Comandos Linux
CICLO: II-B
CARRERA: Computación e
Informática
Grep
grep es una utilidad de la línea de comandos escrita originalmente para ser usada con
el sistema operativo Unix.
Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada
estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para
la expresión regular.
Su nombre deriva de un comando en el editor de texto ed que tiene la siguiente forma:
g/re/p y significa «hacer una búsqueda global para las líneas que encajen con
laexpresión regular (regular expression en inglés), e imprimirlas». Hay varios
argumentos que se pueden usar con grep para modificar el comportamiento por defecto.
Existen otros retroacrónimos (incorrectos) para el nombre, entre ellos: General Regular
Expression Parser (analizador general de expresiones regulares), General Regular
Expression Print (imprimir expresión regular general), y Global Regular Expression
Print (imprimir expresión regular global), éste último no tan lejano de la realidad.

SINTAXIS
La sintaxis es
grep [opciones] patrón [archivo]

PARAMETROS
-A Muestra el número de líneas de texto que hay después de la línea
coincidente.

-a No suprime las lineas de salida con datos binarios, las trata como texto.

-b Mostrar el offset de bytes del archivo de entrada antes de cada linea en la


salida.

-c Muestra la cuenta de líneas coincidentes.

-d acción Definir acción para acceder a los directorios

read lee todos los archivos del directorio.

skip salta directorios.

recurse lee reiterativamente todos los archivos y directorios

-e patrón Busca un patrón.

-h Muestra las líneas coincidentes pero no los nombres de archivo.

-i Ignora los cambios mayúsculas y minúsculas, las considera equivalentes.


-n Muestra la línea y el número de línea.

-q Mostrar en modo silencioso, no muestra nada.

-r Lee iterativamente todos los archivos en los directorios y subdirectorios


encontrados.

-v Muestra todas las lineas que no coinciden.

-V Muestra la versión.

-w Coincidencia en palabras completas únicamente.

También puedes usar patrones para la operación de búsqueda.

. Coincidencia de caracteres únicos.

* Caracter comodín.

^ Empieza por.

$ Termina en.

EJEMPLOS
Para mostrar todas las líneas que contienen la cadena «tal» en una lista de archivos
(donde «*» representa todos los archivos en el directorio actual):

$ grep tal *

Para mostrar todas las líneas que no contengan la cadena «tal», se usa «-v»:

$ grep -v tal *

Para mostrar sólo el nombre de tales archivos, se usa «-l»:

$ grep -l tal *

Para mostrar sólo el nombre de los archivos que no contienen la cadena, se usa «-L»:

$ grep -L tal *
Para buscar recursivamente, no sólo en los archivos del directorio actual sino también en
los de sus subdirectorios (donde "." representa el directorio actual), se usa «-r»:

$ grep -r tal .

En solaris no funciona el parámetro -r. Para obtener la misma funcionalidad, se debe


utilizar además el comando «find» y el comando «exec» (Recordemos, el parámetro «-l»
mostrará únicamente el nombre del archivo que contenga la cadena "tal"):

$ find . -name "*.*" -exec grep -l "tal" {} \;

La opción -r puede no estar disponible en todas las plataformas Unix. De ser así utilizar:

$ find . -type f | xargs grep tal .

Para buscar todas las líneas que comienzan por «Ahora» y terminan con «siempre»
seguido de una cantidad arbitraria de espacio en blanco (nótese que el
carácter ^representa el inicio de la línea, así como $ representa el final):

$ grep '^Ahora.*siempre *$'

Para hacer que grep lea de la entrada estándar, no se especifica archivo alguno. Por
ejemplo, como ps -ef lista todos los procesos actualmente en ejecución, el siguiente
comando imprime todos los procesos que está ejecutando el usuario actual:

$ ps -ef | grep $USER

$ ps -efa | grep $USER


Sed
Sed recibe por stdin (o vía archivo) una serie de líneas para manipular, y aplica a cada
una de ellas los comandos que le especifiquemos a todas ellas, a un rango de las mismas,
o a las que cumplan alguna condición.

SINTAXIS
Su sintaxis es de la forma:
sed [opciones] ´[comandos]´ archivos-de-entrada.

PARAMETROS
 i = Insertar línea antes de la línea actual.
 a = Insertar línea después de la línea actual.
 c = Cambiar línea actual.
 d = Borrar línea actual.
 p = Imprimir línea actual en stdout.
 s = Sustituir cadena en línea actual.
 r archivo = Añadir contenido de “archivo” a la línea actual.
 w archivo = Escribir salida a un archivo.
 ! = Aplicar instrucción a las líneas no seleccionadas por la condición.
 q = Finalizar procesamiento del archivo.

 -n: No mostrar por stdout las líneas que están siendo procesadas.
 -s: Tratar todos los archivos entrantes como flujos separados.

EJEMPLOS

Sustituir apariciones de cadena1 por cadena2 en todo el archivo:


# cat archivo | sed 's/cadena1/cadena2/g'

# cat saludo.txt
hola
maldito
mundo

# sed 's/maldito/bendito/' animal.txt


hola
bendito
mundo

Sustituir apariciones de cadena1 por cadena2 en las líneas 1 a 10:


# comando | sed '1,10 s/cadena1/cadena2/g'

Eliminar las líneas 2 a 7 del archivo


# sed '2,7 d' archivo > archivo2

Eliminar la linea 2 del archivo saludo:


# sed '2d' saludo.txt
hola
mundo