Tengo un comando muy simple jot -r 4 0 255
que básicamente genera 4 números aleatorios en el rango de 0 a 255.
> jot -r 4 0 255
66
14
244
155
¿Cómo puedo formatear la salida a algo como esto 66.14.244.155
:?
Respuesta1
Utilice un carácter de punto como cadena separadora entre los resultados del jot
comando. Abra la terminal y escriba:
jot -s "." 4 0 255
De los resultados de man jot
:
-scadena Imprime datos separados por cadena. Normalmente, las nuevas líneas separan los datos.
En algunos otros casos, un carácter de espacio sería una buena cadena separadora.
Respuesta2
Hice un archivo de prueba t
que contiene resultados similares.
$ cat t
66
14
244
155
Hay muchas formas diferentes de reformatear la salida, canalizada desde cualquier comando o cat
como estos ejemplos:
usa bash
read
como este$ cat t | while read i; do echo -n "$i."; done; echo 66.14.244.155.
para leer cada entrada y repetirla con un punto al final y sin nueva línea (agregando un eco simple al final para obtener una nueva línea al final).
tr
anslate cada nueva línea en un punto, nuevamente con un punto al final y sin nueva línea$ cat t | tr '\n' '.' 66.14.244.155.
lo mismo pero con un muy corto
awk
$ cat t | tr '\n' '.' | awk 'ORS="."' 66.14.244.155.
tr
(oawk
) nuevamente, pero arregle el punto final en una nueva línea$ cat t | tr '\n' '.' | sed 's/.$/\n/' 66.14.244.155
todo
sed
eso esaparentemente más rápido y menos complejosin punto final y una nueva línea$ cat t | sed -e ':a; N; $!ba; s/\n/./g' 66.14.244.155
paste
Puede usar sus opciones des
serial yd
eliminador, sin punto final y una nueva línea.$ cat t | paste -sd "." - 66.14.244.155