当我执行下面的svn命令时,我得到了以下输出。
$ svn log -r 1:HEAD --limit 1 http://plugins.svn.wordpress.org/bulk-delete
------------------------------------------------------------------------
r91525 | plugin-master | 2009-02-03 10:39:23 +0530 (Tue, 03 Feb 2009) | 1 line
adding bulk-delete by sudar
------------------------------------------------------------------------我正在编写一个shell脚本,希望解析上面命令的输出,获得修订号(在本例中为r91525),并将其存储在shell变量中,以便在后续命令中使用它。
我尝试了cut命令,并能够获得第二行的修订号,但其他行仍然出现。
$ svn log -r 1:HEAD --limit 1 http://plugins.svn.wordpress.org/bulk-delete | cut -f1 -d'|'
------------------------------------------------------------------------
r91525
adding bulk-delete by sudar
------------------------------------------------------------------------问:如何检索修订号并存储在shell变量中,以便在后续命令中使用它?
发布于 2012-12-19 23:13:30
您可以使用sed来实现这一点。
svn log --limit 1 | sed -n -e 's/^\(r[0-9]\+\).*/\1/p'这将仅打印出修订版本,例如r1234
如果您只需要修订版的编号,请使用
svn log --limit 1 | sed -n -e 's/^r\([0-9]\+\).*/\1/p'更新:要将其存储在变量中,请使用
bash:
REVISION=$(svn log --limit 1 | sed -n -e 's/^r\([0-9]\+\).*/\1/p')tcsh
set revision = `svn log --limit 1 | sed -n -e 's/^r\([0-9]\+\).*/\1/p'`发布于 2012-12-19 23:13:14
试试这个:
svn blahblah |awk 'NR==2{print $1;exit;}'测试:
kent$ echo "------------------------------------------------------------------------
r91525 | plugin-master | 2009-02-03 10:39:23 +0530 (Tue, 03 Feb 2009) | 1 line
adding bulk-delete by sudar
------------------------------------------------------------------------"|awk 'NR==2{print $1;exit;}'
r91525https://stackoverflow.com/questions/13955245
复制相似问题