所以,我有一个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 }'
答案 0 :(得分:7)
你可以使用Sed。您可以将其管道传输到Sed,而不是将SVN命令的输出重定向到/dev/null
。
svn ls https://svn.example.com 2>&1 | sed 's/^/ /'