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

Mehrzeilige Ausgabe in einem Shell-Skript einrücken

Leiten Sie es an sed weiter um 2 Leerzeichen am Anfang jeder Zeile einzufügen.

git status | sed 's/^/  /'

Aufbauend auf @Barmars Antwort ist dies eine ordentlichere Methode:

indent() { sed 's/^/  /'; }

git status | indent
other_command | indent

Danke an @Barmar und @Marplesoft für einige nette einfache Lösungen - hier ist eine weitere Variante, die anderen gefallen könnte - eine Funktion, mit der Sie mit pr feststellen können, wie viele Einrückungsebenen Sie verwenden :

indent() {
  local indentSize=2
  local indent=1
  if [ -n "$1" ]; then indent=$1; fi
  pr -to $(($indent * $indentSize))
}

# Example usage
ls -al | indent
git status | indent 2

Linux
  1. Zeitüberschreitung in einem Shell-Skript?

  2. Bestimmen des Pfads zum bezogenen Shell-Skript?

  3. Prozesse in einer Sitzung in einer interaktiven Shell oder in einem Skript?

  4. Die Bedeutung von $? In einem Shell-Skript?

  5. Speichern Sie das Ergebnis von Find als Variable in einem Shell-Skript?

Wie kann man feststellen, ob die Ausgabe eines Befehls oder Shell-Skripts Stdout oder Stderr ist?

Wie führe ich einen Befehl in einem Shell-Skript aus?

Shell-Skript zum Drucken der Sternenpyramide

Farbige Shell-Script-Ausgabebibliothek

Transliterationsskript für die Linux-Shell

Befehlsausgabe im Docker umleiten