viernes, 10 de febrero de 2012

Shell Script Ejemplos de GREP

#!/bin/bash
#TODOS LOS SCRIPTS EN http://oposinf.blogspot.com/search/label/shellscript
#1. Utilidad grep
#El fichero /etc/passwd es un fichero de texto que contiene información #acerca de las cuentas de usuario definidas en el sistema.
#Cada línea contiene siete datos, separados por el carácter ‘:’. Estos datos son: nombre de la cuenta, password encriptado (opcional), el código de usuario (user ID), el código del grupo (group ID), un comentario, el nombre del directorio ‘home’ y el nombre del intérprete de comandos que se ejecutará cuando el usuario se conecte.
#Vamos a utilizar este fichero en las cuestiones siguientes.
#1. Mostrad la línea correspondiente a la cuenta alu.
#2. Mostrad las cuentas que empiecen por a.
#3. Mostrad las cuentas que empiecen por a o r.
#4. Mostrad las cuentas que terminen por u.
#5. Mostrad las cuentas que usen bash como intérprete de comandos.
#6. Mostrad las cuentas que NO usen bash como intérprete de comandos.
#7. Mostrad las cuentas que no empiecen por vocal.
#8. Mostrad las cuentas que empiecen por mayúscula.
#9. Mostrad las líneas cuyo tercer campo tenga una sola cifra.
#10. Mostrad las líneas que tengan cifras de 3 a 5 dígitos.
#11. Mostrad las líneas que tengan cifras de 3 dígitos en el cuarto campo.
#12. Mostrad las cuentas root o de ftp.
#13. ¿Qué ficheros de cabecera usan la constante MAXDOUBLE?
#14. ¿En qué ficheros aparece la palabra bash? (En mayúscula o minúscula)

#1.como no existe alu, pongo man
echo "1.Cuenta MAN"
grep ^man /etc/passwd
#2.
echo "2.Cuentas que empiezan por a"
grep ^a /etc/passwd
echo "3. Cuentas que empiezan por a o r"
grep ^[ar] /etc/passwd
echo "4. Cuentas que terminan en z"
cat /etc/passwd | awk -F : '{print $1}' | grep z$
echo "5. Cuentas que usen bash como intérprete de comandos"
#cat /etc/passwd | awk -F : '{print $7}' | grep /bin/bash
cat /etc/passwd | grep /bin/bash$ | awk -F : '{print $1}'
echo "6. Mostrad las cuenta que no usen bash como intérprete de comandos."
cat /etc/passwd | grep -v /bin/bash$ | awk -F : '{print $1}'
echo "7. Mostrad las cuentas que no empiecen por vocal."
cat /etc/passwd | awk -F : '{print $1}' | grep ^[^aeiou]
echo "8. Mostrad las cuentas que empiecen por mayúscula."
cat /etc/passwd | awk -F : '{print $1}' | grep ^[A-Z]
echo "9. Mostrad las líneas cuyo tercer campo tenga una sola cifra."
cat /etc/passwd | awk -F : '{print $3}' | grep ^[0-9]$
echo "10. Mostrad las líneas que tengan cifras de 3 a 5 dígitos."
cat /etc/passwd | grep -E [0-9]\{3,5\}
echo "11. Mostrad las líneas que tengan cifras de 3 dígitos en el cuarto campo."
#cat /etc/passwd | awk -F : '{print $4}' | grep -E ^[0-9]{3}$
cat /etc/passwd | grep -E *:*:*:[0-9]{3}:
echo "12. Mostrar las cuentas root o de ftp."
cat /etc/passwd | grep -E '^(root|ftp)'
echo "13. ¿Qué ficheros de cabecera usan la constante MAXDOUBLE?"
#los ficheros de cabecera están en la carpeta /usr/include
grep -r MAXDOUBLE /usr/include 2>/dev/null
#14. ¿En qué ficheros aparece la palabra bash? (En mayúscula o minúscula)
echo "14. ¿En qué ficheros aparece la palabra bash? (En mayúscula o minúscula)"
grep -Er '(FILE|file)' /usr/include 2>/dev/null

No hay comentarios:

Publicar un comentario