0

testという名前のテキストに4つの空白を挿入したいと思います。

sed 's/^/  \{4\}/'  test  

なぜそれが機能しないのですか?どうすればよいですか?

10個のブランクまたは20個のブランクを追加したいのはどうですか?

sed 's/^/    /' test  #can work ,but not well done
4

2 に答える 2

2

nneonneoは、スクリプトが機能しなかった理由を説明しました。固定幅の行を実現するために左側の行をスペースで埋める方法はかなりよく知られていますが、sedのすべての行の行に同じ数の空白を追加することは別の問題です。

sed以外のものを使用することに耐えられる場合は、

またはあなたは使用することができますruby

ruby -e 'ARGF.each {|l| puts (" " * 4) + l}' test

または、次を使用できますawk

awk '{for (i=0; i<4; i++) printf(" "); print $0}' test

またはperl

perl -ne 'printf "%s%s", (" " x 4), $_' test

編集:私は純粋な解決策を見たいと思いsedます。条件付き分岐(t)を使用すると、パディングには役立つように見えますが、要求したことを実行することはできません。

于 2012-09-23T02:23:54.580 に答える
2

{n}リピートは置換パターンでは機能しません。

ただやる

sed 's/^/    /' test
于 2012-09-23T02:24:04.677 に答える