![如何格式化 jot 指令的輸出](https://rvso.com/image/1585931/%E5%A6%82%E4%BD%95%E6%A0%BC%E5%BC%8F%E5%8C%96%20jot%20%E6%8C%87%E4%BB%A4%E7%9A%84%E8%BC%B8%E5%87%BA.png)
我有一個非常簡單的命令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
:
-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
串列和d
分隔符號選項,沒有尾隨點和換行符$ cat t | paste -sd "." - 66.14.244.155