Duda comandos en consola Linux

Dudas y comentarios sobre otros lenguajes de programación. Si algún lenguaje recibe suficientes preguntas le añadimos nueva categoría.
Responder
Mensaje
Autor
starkister
Mensajes: 21
Registrado: 06/11/2013 7:47 am

Duda comandos en consola Linux

#1 Mensaje por starkister » 20/10/2014 1:37 pm

Buenas, antes que nada no sé si este tema va aquí, estoy empezando a estudiar C pero tengo unas dudas con unos comandos en consola:

Tengo una práctica para familiarizarme con el uso de los comandos en la consola de Linux, y me piden lo siguiente:

a) Liste las líneas del fichero /etc/pam.d/login que contengan la palabra auth

Estando en el directorio pam.d he puesto el comando "grep auth login"

b) Obtenga las líneas del fichero /etc/pam.d/login que comiencen con la palabra auth

Aquí he usado el comando "grep "^auth" login

c) Haga lo mismo con las líneas que terminen con dicha palabra, indicando además el número de línea correspondiente

Aquí "grep -n "$auth" login

d) Liste todas las líneas del fichero /etc/pam.d/login que no sean comentarios (las líneas de comentarios son las que empiezan con el carácter #)

Aquí "grep -V "^#" login

e) Repita lo anterior, eliminando también las líneas vacías. Para ello ejecute dos comandos grep conectados por una tubería.

f) Determine en cuántas líneas del fichero /etc/pam.d/login aparece la palabra pam, independientemente que sea en mayúsculas o minúsculas

¿Alguien me puede ayudar con los apartados e y f?, y decirme también si los anteriores están bien :S

Muchas gracias de antemano!

Avatar de Usuario
rir3760
Mensajes: 7553
Registrado: 01/10/2004 11:00 pm
Ubicación: Mexico

Re: Duda comandos en consola Linux

#2 Mensaje por rir3760 » 20/10/2014 4:49 pm

starkister escribió:Buenas, antes que nada no sé si este tema va aquí
Por supuesto que no ya que las preguntas no están relacionadas con los lenguajes C y C++. Muevo el tema al foro apropiado: Otros lenguajes.

starkister escribió:d) Liste todas las líneas del fichero /etc/pam.d/login que no sean comentarios (las líneas de comentarios son las que empiezan con el carácter #)

Aquí "grep -V "^#" login

e) Repita lo anterior, eliminando también las líneas vacías. Para ello ejecute dos comandos grep conectados por una tubería.
Para invertir el proceso (mostrar las lineas que no coincidan con el patrón) la opción a utilizar es -v (-V o --version ya te imaginaras que salida tiene) y para comparar la linea completa contra el patrón la opcion es -x. Sumando ambas resulta en:

Código: Seleccionar todo

!cat test.txt | grep -v "^#" | grep -vx "$"
starkister escribió:f) Determine en cuántas líneas del fichero /etc/pam.d/login aparece la palabra pam, independientemente que sea en mayúsculas o minúsculas
Para no distinguir entre mayúsculas y minúsculas la opción es -i o --ignore-case, para imprimir solo el numero de lineas coincidentes la opción es -c o --count. Por ejemplo:

Código: Seleccionar todo

!cat test.txt | grep --ignore-case --count pam
En los ejemplos en lugar de indicar el archivo a utilizar se toma mediante canalización la salida del comando "cat test.txt".
starkister escribió:¿Alguien me puede ayudar con los apartados e y f?, y decirme también si los anteriores están bien
En Linux en caso de duda lo mejor es utilizar el comando "man grep", con el se listan y describen todas las opciones.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

starkister
Mensajes: 21
Registrado: 06/11/2013 7:47 am

Re: Duda comandos en consola Linux

#3 Mensaje por starkister » 21/10/2014 2:17 am

rir3760 escribió:
starkister escribió:Buenas, antes que nada no sé si este tema va aquí
Por supuesto que no ya que las preguntas no están relacionadas con los lenguajes C y C++. Muevo el tema al foro apropiado: Otros lenguajes.

starkister escribió:d) Liste todas las líneas del fichero /etc/pam.d/login que no sean comentarios (las líneas de comentarios son las que empiezan con el carácter #)

Aquí "grep -V "^#" login

e) Repita lo anterior, eliminando también las líneas vacías. Para ello ejecute dos comandos grep conectados por una tubería.
Para invertir el proceso (mostrar las lineas que no coincidan con el patrón) la opción a utilizar es -v (-V o --version ya te imaginaras que salida tiene) y para comparar la linea completa contra el patrón la opcion es -x. Sumando ambas resulta en:

Código: Seleccionar todo

!cat test.txt | grep -v "^#" | grep -vx "$"
starkister escribió:f) Determine en cuántas líneas del fichero /etc/pam.d/login aparece la palabra pam, independientemente que sea en mayúsculas o minúsculas
Para no distinguir entre mayúsculas y minúsculas la opción es -i o --ignore-case, para imprimir solo el numero de lineas coincidentes la opción es -c o --count. Por ejemplo:

Código: Seleccionar todo

!cat test.txt | grep --ignore-case --count pam
En los ejemplos en lugar de indicar el archivo a utilizar se toma mediante canalización la salida del comando "cat test.txt".
starkister escribió:¿Alguien me puede ayudar con los apartados e y f?, y decirme también si los anteriores están bien
En Linux en caso de duda lo mejor es utilizar el comando "man grep", con el se listan y describen todas las opciones.

Un saludo
Gracias, ya he conseguido hacerlo ;)

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados