Как отформатировать вывод команды jot

Как отформатировать вывод команды jot

У меня есть очень простая команда 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можно использовать параметры serial и delimiter, без конечной точки и с новой строкой

    $ cat t | paste -sd "." -
    66.14.244.155
    

Источник

Связанный контент