如何格式化 jot 命令的输出

如何格式化 jot 命令的输出

我有一个非常简单的命令jot -r 4 0 255,它基本上输出 0 到 255 范围内的 4 个随机数。

> jot -r 4 0 255
66
14
244
155

我怎样才能将输出格式化为如下形式:66.14.244.155

答案1

使用句点字符作为命令结果之间的分隔符字符串jot。打开终端并输入:

jot -s "." 4 0 255

从结果来看man jot

-s细绳
        打印以字符串分隔的数据。通常,数据以换行符分隔。

在其他一些情况下,空格字符可以成为良好的分隔字符串。

答案2

我制作了一个测试文件,t包含类似的输出

$ cat t
66
14
244
155

有很多不同的方法可以重新格式化输出,通过任何命令传输或cat像这些例子:

  • read像这样使用 bash

    $ cat t | while read i; do echo -n "$i."; done; echo
    66.14.244.155.
    

    读取每个条目并用尾随点和无换行符回显它(在末尾添加一个简单的回显以获得尾随换行符)。

  • 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
    

来源

相关内容