是否存在更方便的方式从svn log获取svn修订号输出?

时间:2016-03-17 12:53:46

标签: shell svn grep

请参阅以下内容:

echo "r22543 | foobar | 2016-03-08 17:17:02 +0800  | 1 line" | egrep -o 'r[0-9]+' | egrep -o '[0-9]+'
22543

获取svn修订号是否存在更方便的方式?

3 个答案:

答案 0 :(得分:0)

可以使用pcregrep,见下文

 echo 'r123456 foo 2016-03-17' | pcregrep -o1 'r([0-9]+)'
 123456

我是从Capturing Groups From a Grep RegEx

看到的

答案 1 :(得分:0)

使用--xml command line option并解析xml的输出而不是grepping。

svn log https://svn.example.com/myrepo --xml

<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
   revision="123">
<author>MyAuthor</author>
<date>2016-03-16T14:05:26.310474Z</date>
<msg>Created folder 'foo'.</msg>
</logentry>
</log>

答案 2 :(得分:0)

使用优秀的sed

很容易做到
echo "r22543 | foobar | 2016-03-08 17:17:02 +0800  | 1 line" | sed 's/^r\([^[:space:]]\+\).*/\1/'