在shell脚本中解析命令的输出,并将结果存储在变量中

在shell脚本中解析命令的输出,并将结果存储在变量中,shell,cut,unix,Shell,Cut,Unix,当我执行以下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 a

当我执行以下
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变量中,以便在后续命令中使用它?

尝试以下操作:

svn blahblah |awk 'NR==2{print $1;exit;}'
测试:

试试这个:

svn blahblah |awk 'NR==2{print $1;exit;}'
测试:


您可以为此使用
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'
更新:将其存储在变量中使用

狂欢节:

REVISION=$(svn log --limit 1 | sed -n -e 's/^r\([0-9]\+\).*/\1/p')
tcsh


您可以为此使用
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'
更新:将其存储在变量中使用

狂欢节:

REVISION=$(svn log --limit 1 | sed -n -e 's/^r\([0-9]\+\).*/\1/p')
tcsh


如果您需要的是最新版本,请参阅@SirDarius No,我不想要最新版本。我想要引入此目录的版本。如果您需要的是最新版本,请参阅@SirDarius No,我不想要最新版本。我想要介绍此目录的版本。这回答了我问题的一部分。但是如何将结果存储在shell变量中?@Sudar try
var=$(svn…| awk…
然后echo$var您应该会看到值已存储。这是可行的,但我接受另一个答案,因为他也给出了tcsh版本。这回答了我问题的一部分。但是如何将结果存储在shell变量中?@Sudar try
var=$(svn…| awk…
然后echo$var您应该会看到值已存储。这是可行的,但我接受另一个答案,因为他也给出了tcsh版本。这回答了我问题的一部分。但是如何将结果存储在shell变量中呢?这回答了我问题的一部分。但是如何将结果存储在shell变量中?