GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Aufteilung der Ausgabe in neue Zeilen?

Ich habe ein Skript ./abc erstellt .

Ich möchte die Ausgabe in neue Zeilen aufteilen.

meincode:

#!/bin/bash
dir="$1"

echo -n "size of file:"
du -hba $dir | sort -n -r | tail -1

Meine Ausgabe ist:

size of files: 20kb
         /path/to/sport

Ich möchte die Ausgabe als:

size of files: 20kb
         /path/to/sport

Akzeptierte Antwort:

Ich würde so etwas in Betracht ziehen:

du="$(du -hba "$dir" | sort -n -r | tail -1)"
printf "size of file: %snt%sn" "${du/$'t'*}" "${du#*$'t'}"

Der du Variable übernimmt das Ergebnis Ihrer Suche. Es wird dann für printf in zwei tabulatorgetrennte Teile aufgeteilt -Anweisung, wobei jeder der Teile mit %s in den Formatstring interpoliert wird .

Dieses Konstrukt sollte Dateinamen verarbeiten, die Zeilenumbrüche, Tabulatoren und andere ungewöhnliche Zeichen enthalten.


Linux
  1. Was bedeutet die Größe eines Verzeichnisses in der Ausgabe des Befehls „ls -l“?

  2. Wie sortiere ich die Ausgabe nach Größe?

  3. Erstellen Sie ein Tar-Archiv, das in Blöcke mit maximaler Größe aufgeteilt ist?

  4. Neue Zeilen mit fehlenden Werten einfügen (na)?

  5. Konvertieren Sie die ls-Ausgabe in csv

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

Weiße oder schwarze Linien in der Konsolenausgabe mit Plasmaskalierung

Wie verkettet man mehrere Ausgabezeilen zu einer Zeile?

Wie kopiert man die Zeilen 10 bis 15 einer Datei in eine andere Datei in Unix?

Interpretieren von dd Input/Output-Fehler

Ausgabe des Zeitbefehls in Unix in eine Variable in Bash umleiten?