У меня есть очень простая команда jot -r 4 0 255
, которая по сути выводит 4 случайных числа в диапазоне от 0 до 255.
> jot -r 4 0 255
66
14
244
155
Как мне отформатировать вывод примерно так: 66.14.244.155
?
решение1
Используйте символ точки в качестве разделительной строки между результатами команды jot
. Откройте терминал и введите:
jot -s "." 4 0 255
По результатам man jot
:
-снить Вывести данные, разделенные строкой. Обычно данные разделяются символами новой строки.
В некоторых других случаях пробел может стать хорошим разделителем строки.
решение2
Я создал тестовый файл, t
содержащий похожий вывод
$ cat t
66
14
244
155
Существует множество различных способов переформатировать вывод, переданный из любой команды или cat
как в этих примерах:
используйте bash
read
как этот$ cat t | while read i; do echo -n "$i."; done; echo 66.14.244.155.
для чтения каждой записи и ее вывода с конечной точкой и без новой строки (добавляя простое echo в конце, чтобы получить конечную новую строку).
tr
Переводить каждую новую строку в точку, снова с конечной точкой и без новой строки$ cat t | tr '\n' '.' 66.14.244.155.
то же самое, но с очень коротким
awk
$ cat t | tr '\n' '.' | awk 'ORS="."' 66.14.244.155.
tr
(илиawk
) еще раз, но исправьте завершающую точку на новую строку$ cat t | tr '\n' '.' | sed 's/.$/\n/' 66.14.244.155
все
sed
этопо-видимому, быстрее и менее сложнобез конечной точки и с новой строкой$ cat t | sed -e ':a; N; $!ba; s/\n/./g' 66.14.244.155
paste
можно использовать параметрыs
erial иd
elimiter, без конечной точки и с новой строкой$ cat t | paste -sd "." - 66.14.244.155