Ich habe einen sehr einfachen Befehl jot -r 4 0 255
, der im Wesentlichen 4 Zufallszahlen im Bereich von 0 bis 255 ausgibt.
> jot -r 4 0 255
66
14
244
155
Wie kann ich die Ausgabe so formatieren: 66.14.244.155
?
Antwort1
Verwenden Sie einen Punkt als Trennzeichen zwischen den Ergebnissen des jot
Befehls. Öffnen Sie das Terminal und geben Sie Folgendes ein:
jot -s "." 4 0 255
Aus den Ergebnissen von man jot
:
-SSchnur Drucken Sie die Daten getrennt durch Zeichenfolgen. Normalerweise trennen Zeilenumbrüche die Daten.
In einigen anderen Fällen wäre ein Leerzeichen eine gute Trennzeichenfolge.
Antwort2
Ich habe eine Testdatei erstellt, t
die eine ähnliche Ausgabe enthält
$ cat t
66
14
244
155
Es gibt eine Reihe verschiedener Möglichkeiten, die Ausgabe neu zu formatieren. Sie kann von jedem beliebigen Befehl aus weitergeleitet werden oder cat
ähnelt den folgenden Beispielen:
Verwenden Sie Bash
read
wie folgt$ cat t | while read i; do echo -n "$i."; done; echo 66.14.244.155.
um jeden Eintrag zu lesen und ihn mit einem abschließenden Punkt und ohne Zeilenumbruch wiederzugeben (durch Hinzufügen eines einfachen Echos am Ende, um einen abschließenden Zeilenumbruch zu erhalten).
tr
anslate jede neue Zeile in einen Punkt, wieder mit einem abschließenden Punkt und ohne neue Zeile$ cat t | tr '\n' '.' 66.14.244.155.
das gleiche aber mit einer sehr kurzen
awk
$ cat t | tr '\n' '.' | awk 'ORS="."' 66.14.244.155.
tr
(oderawk
), aber ändern Sie den abschließenden Punkt in einen Zeilenumbruch$ cat t | tr '\n' '.' | sed 's/.$/\n/' 66.14.244.155
alles
sed
das istscheinbar schneller & weniger komplexohne abschließenden Punkt und mit einem Zeilenumbruch$ cat t | sed -e ':a; N; $!ba; s/\n/./g' 66.14.244.155
paste
kann seines
seriellen undd
Trennzeichenoptionen verwenden, ohne abschließenden Punkt und mit einem Zeilenumbruch$ cat t | paste -sd "." - 66.14.244.155