2012-09-23 252 views
0

我想在名爲test的文本中插入4個空格。Sed在每行添加空格

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

爲什麼它不能工作?我該怎麼辦?

我想添加10個空格或20個空格?

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

回答

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)似乎對填充很有用,但不會去做你所要求的。

2

{n}重複不能以替換模式工作。

只是做

sed 's/^/ /' test