GNU/Linux >> Linux の 問題 >  >> Linux

シェル スクリプトでの複数行出力のインデント

sed にパイプします 各行の先頭に 2 つのスペースを挿入します。

git status | sed 's/^/  /'

@Barmarの答えに基づいて、これはよりきちんとした方法です:

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

git status | indent
other_command | indent

@Barmar と @Marplesoft に感謝します。シンプルな解決策があります。これは、他の人が好むかもしれない別のバリエーションです。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. 実行時にスクリプトでシェルを決定しますか?

  2. インタラクティブシェルのセッションのプロセスとスクリプトのプロセス?

  3. $の意味は?シェルスクリプトでは?

  1. シェルスクリプトの現在のディレクトリ?

  2. Linux シェルの音訳スクリプト

  3. パイプ出力をシェル スクリプトの引数として使用できますか?

  1. シェルスクリプトでタイムアウトしますか?

  2. ソースシェルスクリプトへのパスを決定しますか?

  3. シェルスクリプトはプログラミング言語ですか?