在外部脚本输出之前添加制表符

时间:2013-12-10 10:20:58

标签: bash shell ubuntu

所以,我有一个shell脚本来自动化一些SVN命令。我在脚本期间输出到logfile和stdout,并将SVN输出定向到/ dev / null。现在我想在我的日志记录中包含SVN输出,但是要从我自己的输出中分离它,我想在SVN输出的每一行前面添加\t。这可以用shell脚本来完成吗?

修改 这是我可以使用AWK的东西吗?我会调查的!

修改 因此,使用AWK似乎可以解决问题。可悲的是,我无法使用svn命令。

svn add * | awk '{ print "\t"$0 }'

没有前置制表符的输出。但是,如果我运行例如ls

ls -l | awk '{ print "\t"$0 }'

列出目录,每行前面都有一个制表符。

修改 谢谢@daniel!我最终得到了这个

svn add * 2>&1 | sed 's/^/\t/'

可能还要注意,如果使用正确,awk可以正常使用

svn add * 2>&1 | awk '{print "\t"$0 }'

1 个答案:

答案 0 :(得分:7)

你可以使用Sed。您可以将其管道传输到Sed,而不是将SVN命令的输出重定向到/dev/null

svn ls https://svn.example.com 2>&1 | sed 's/^/    /'