GNU/Linux >> Znalost Linux >  >> Linux

Odsazení víceřádkového výstupu ve skriptu shellu

Přeneste to do sed pro vložení 2 mezer na začátek každého řádku.

git status | sed 's/^/  /'

Na základě odpovědi @Barmar je to přehlednější způsob, jak to udělat:

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

git status | indent
other_command | indent

Děkujeme @Barmar a @Marplesoft za několik pěkných jednoduchých řešení - zde je další varianta, která by se mohla líbit ostatním - funkce, kterou můžete určit, kolik úrovní odsazení můžete pomocí pr :

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. Transliterační skript pro linuxové prostředí

  2. Mohu použít výstup potrubí jako argument skriptu shellu?

  3. Přesměrování výstupu příkazu v dockeru

  1. Určit prostředí ve skriptu za běhu?

  2. Určení cesty ke zdrojovému skriptu Shell?

  3. určit shell ve skriptu za běhu

  1. Procesy v relaci v interaktivním prostředí versus ve skriptu?

  2. Jak zjistit, zda je výstup příkazového nebo shellového skriptu Stdout nebo Stderr?

  3. Shell Script pro tisk pyramidy hvězd