So formatieren Sie die Ausgabe des Jot-Befehls

So formatieren Sie die Ausgabe des Jot-Befehls

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 jotBefehls. Ö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, tdie 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 readwie 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).

  • translate 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 kurzenawk

    $ cat t | tr '\n' '.' | awk 'ORS="."'
    66.14.244.155.
    
  • tr(oder awk), aber ändern Sie den abschließenden Punkt in einen Zeilenumbruch

    $ cat t | tr '\n' '.' | sed 's/.$/\n/'
    66.14.244.155
    
  • alles seddas 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
    
  • pastekann seine sseriellen und dTrennzeichenoptionen verwenden, ohne abschließenden Punkt und mit einem Zeilenumbruch

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

Quelle

verwandte Informationen