2013-07-05 4 views
37

Ubuntu Amazon EC2ボックスでその日のメッセージ(MOTD)を変更しようとしています.SSHを実行すると、ディレクトリのgitステータスが表示されます。シェルスクリプトで複数行出力をインデントする

デフォルトMOTDファイルのすべての出力は、それがうまくインデントに見えるように、各行の先頭に2つのスペースを持っていますが、私のgit status出力は複数行にまたがるので、私はecho -n " "をすれば、それは最初の行のみをインデントする前に。

すべての行をどのようにインデントすることができますか?

ありがとうございます!

答えて

60

sedにパイプを張って、各行の先頭に2桁を挿入します。 Barmarの答え@上の建物

git status | sed 's/^/ /' 
+0

Perfect-。それは 'sed'と何かになると思っていましたが、私はあまり経験はありません。ありがとう! –

22

、これはそれを行うには整然と方法です:私が探していたまさに

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

git status | indent 
other_command | indent 
+1

実際にはそれほど多くは追加されませんが、これはシェルスクリプト内での1回使用のケースなので、bashサブルーチンはちょっと残念ですが、 –

+0

@MattFletcher:このようなサブルーチンでコードを記述すると、何が起こっているのか把握するために非bash教授(自分のような)のために。また、突然2つのスペースの代わりに3つのスペースを使用することに決めた場合、修正する場所は1つだけです。 – Vering

+2

@Veringそれは本当です、私はそのような利点を理解しています、私はちょうど答えではなく、コメントであった可能性があることを示唆しています、それはほぼ同じ答えであり、最初の場所:) –

関連する問題