我想在名为 test 的文本中插入 4 个空格。
sed 's/^/ \{4\}/' test
为什么它不能工作?我该怎么办?
我想添加 10 个空格或 20 个空格怎么样?
sed 's/^/ /' test #can work ,but not well done
我想在名为 test 的文本中插入 4 个空格。
sed 's/^/ \{4\}/' test
为什么它不能工作?我该怎么办?
我想添加 10 个空格或 20 个空格怎么样?
sed 's/^/ /' test #can work ,but not well done
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
) 似乎对填充很有用,但不能满足您的要求。
{n}
重复在替换模式中不起作用。
做就是了
sed 's/^/ /' test