con id de 1 hasta 999

Imagen de aptree
0 puntos

hola a todos!!! necesito ayuda con este ejercicio. Espero que alguien me pueda ayudar:
Indica el numero total de usuarios del sistema ( con id de 1 hasta 999).
saludos.

Imagen de KIKERAP
+1
0
-1

Creo que esto es lo que pides ;) :

1 #!/bin/bash
2 cont=0
3 while read -r line; do
4 var=`echo "$line" | cut -d':' -f3`
5 if [[ $var -ge 1 && $var -le 999 ]]; then
6 cont=$[$cont+1]
7 fi
8 done < /etc/passwd
9 echo "El número de usuarios con ID entre 1 y 999 es $cont"

+1
0
-1
Imagen de aptree
+1
0
-1

Al final lo consegui, es asi:

cat /etc/passwd |cut -d: -f3 |sort -n | grep -E '^[1-9]{1}$|^[0-9]{2}$|^[0- 9]{3}$'| wc -l

La parte del grep era la que no sabia como hacerla. Gracias de todos modos.

+1
0
-1
Imagen de Jose Luis 1320
+1
0
-1

Yo creo que no deberíamos estar haciéndote la tarea.

+1
0
-1

"Yo sólo se que no se nada"
-Sócrates, filósofo griego.
-Normas del foro

Imagen de KIKERAP
+1
0
-1

Si, aptree puedes hacerlo asi, pero como no estaba seguro de si querias el nº total de lineas, o imprimir el contenido de las lineas, lo hice de esa manera.
De esta forma si en un futuro quieres imprimir las lineas que coincidan con lo que buscas, con quitar el contador y poner un echo "$line" te basta, o si quieres imprimir el nombre de los usuarios que coinciden le haces un pipe al awk y ya esta.
Y sin cambiar la estructura del script :) .

Nota: Jose Luis 1320 tienes razón, pero creo que ya es problema de quien pregunta, si prefiere copiar la tarea no aprenderá nunca, solo se perjudica a él mismo.

Saludos.

+1
0
-1