Last active
July 11, 2023 14:28
-
-
Save rodrigolive/34f94987fb0f1e673c7a5688d84b85a1 to your computer and use it in GitHub Desktop.
07 : r_dwssap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
cat /etc/passwd | grep -v '^ *#' | sed -n 'n;p' | sed 's/:.*$//' | rev | sort -r | sed -n "${FT_LINE1},${FT_LINE2}p" | paste -sd "," - | sed 's/,/, /g'|sed 's/$/./' |
Dios mío, este, chupadísimo 🤯🤯🤯
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
cat /etc/passwd
Ver contenido del fichero
grep -v '^ *#'
Descartar las líneas que empiecen por
#
(haya espacios o no)sed -n 'n;p'
Imprimir a partir de la segunda línea, saltando cada 2 líneas.
sed 's/:.*$//'
Borrar todo
.*
después del primer:
hasta el final de la línea, quedándonos con el nombre usuario.rev
Dar la vuelta a cada nombre de usuario,
pepito
se convierte enotipep
sort -r
Ordenar líneas en orden alfabético inverso
sed -n "${FT_LINE1},${FT_LINE2}p"
Usamos sed para seleccionar un rango de líneas entre FT_LINE1 y FT_LINE2.
Por ejemplo, si el primero es 7 y el segundo 16, el sed, después de la interpolación de las 2 variables,
quedaría así
sed -n "7,16p"
que significa coger las líneas comprendidas entre 7 y 16 inclusivas.paste -sd "," -
El comando
paste
junta a las líneas en una sola línea. Ponemos como delimitador-d
el caracter,
.Desafortunadamente no nos permite poner más de 1 caracter, así que...
sed 's/,/, /g'
Reemplazamos la coma por coma-espacio
,
.sed 's/$/./'
Y para cerrar ponemos un punto al final.
Para probar el script:
FT_LINE1=2 FTLINE2=7 ./r_dwssap.sh
Tá chupado! 😆