我有一个非常简单的命令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
可以使用它的s
erial 和d
elimiter 选项,没有尾随点和换行符$ cat t | paste -sd "." - 66.14.244.155