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!
El c) lo tienes mal. El $ debe ir al final, sino te va a retornar todo el contenido del fichero.
grep -n "auth$" login
El d) también lo tienes mal. Si haces man grep veras que el parámetro -V (v mayúscula) es para mostrar la versión de grep. Recuerda que en *NIX la mayoría de las cosas son case-sensitive. Lo correcto seria usar la -v minúscula.
grep -v "^#" login
En el e) te pide lo mismo pero que elimines las lineas vacías usando un pipe (tubería) adicional. Aunque se puede hacer sin pipes (con expresiones regulares) seria algo así:
grep -v "^#" login | grep -v "^$"
Aquí tienes una breve explicación (en ingles) sobre lo que son las tuberías.
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html
El d) es muy simple. De nuevo, si lees el man de grep, veras que el parámetro -i sirve para hacerlo que ignore mayúsculas/minúsculas (ignore-case) y también veras que el parámetro -c suprime la salida y solo muestra las lineas que ha devuelto el pattern.
grep -ic "pam" login
Nota MOD: Tema movido al subforo GNU/Linux. Entiendo que estés estudiando C/C++ pero si tu duda no es sobre algo de ese lenguaje, ponla en su subforo correcto. =)
Saludos
Muchísimas gracias por todo!
Y sí, la próxima vez que sea sobre comandos lo pondré en esta sección =)