Tengo una lista de usuarios básicamente de /etc/group. Básicamente, me gustaría formatear esa línea en una columna, solo necesito los usuarios. Entonces, si un campo se ve así:
bob,john,jane,sam,joyce
Entonces me gustaría que se viera así
bob
john
jane
sam
joyce
Sé hacer lo contrario pero no este tipo.
Respuesta1
Puedes hacer esto con sed:
sed 's/,/\n/g'
Esto reemplaza todas las apariciones de ,
con una nueva línea. g
hace que sed reemplace todas las apariciones en una línea en lugar de solo la primera.
Respuesta2
Para responder usando las etiquetas sugeridas:
intento:
$ IFS=, read -a names <<< "bob,john,jane,sam,joyce"
$ printf "%s\n" "${names[@]}"
bob
john
jane
sam
joyce
mal:
$ echo "bob,john,jane,sam,joyce" | awk -F, -v OFS="\n" '{$1=$1; print}'
bob
john
jane
sam
joyce
El $1=$1
bit es un modismo extraño para reescribir el registro actual usando los separadores de campo de salida, lo cual no sucede a menos que se modifique algún campo.
Respuesta3
Respuesta4
Si desea utilizar awk (similar aImprima todos los campos con AWK separados por OFS):
echo "bob,john,jane,sam,joyce" | awk 'BEGIN {FS=","; OFS="\n"} {$1=$1; print $0}'