我想在名为test的文本中插入4个空格。
sed 's/^/ \{4\}/' test
为什么它不起作用?我该怎么办?
我想要添加10个空格还是20个空白?
sed 's/^/ /' test #can work ,but not well done
答案 0 :(得分: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
)似乎对填充有用,但不能按照你的要求进行。
答案 1 :(得分:2)
{n}
重复不适用于替换模式。
只做
sed 's/^/ /' test