在文本文件中每行的开头添加空格 5 次

在文本文件中每行的开头添加空格 5 次

我正在寻找一个命令行或 bash 脚本,它会在文件中每行的开头之前添加 5 次空格。

例如:

abc

加空格5次后

      abc

答案1

使用 GNU sed:

sed -i -e 's/^/     /' <file>

将用 5 个空格替换每行的开头。就地修改-i文件,-e给出一些要sed执行的代码。 s告诉sed进行替换,^匹配行的开头,然后后两个/字符之间的部分将替换开头匹配的部分,即本例中的行的开头。

答案2

您可以使用sed

sed 's_^_     _' tmpin > tmpout

或者awk

awk '{print "     " $0}' tmpin > tmpout

或者粘贴(谢谢库恩勒姆

:| paste -d' ' - - - - - file

小心。这些可能会让人上瘾。您可以解决许多简单的问题,但总有一天您需要升级到完整的脚本语言。

编辑:Sed 脚本根据 Eric Renouf 的答案进行了简化。

答案3

您可以使用许多标准工具,例如paste

:| paste -d' ' - - - - - file

或更短的awk

awk '{$1="     "$1}1' file

或更便携perl

perl -pe '$_=" "x5 .$_' file

答案4

您可以在 Ex 模式下使用 Vim:

ex -sc '%s/^/     /|x' file
  1. %选择所有行

  2. s代替

  3. x保存并关闭

相关内容