0

次の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
------------------------------------------------------------------------

シェルスクリプトを作成しています。上記のコマンドの出力を解析し、リビジョン番号(この場合はr91525)を取得してシェル変数に格納し、後続のコマンドで使用できるようにします。

cutコマンドを試し、2行目でリビジョン番号を取得できましたが、他の行はまだ表示されていました。

$ svn log -r 1:HEAD --limit 1 http://plugins.svn.wordpress.org/bulk-delete | cut -f1 -d'|'
------------------------------------------------------------------------
r91525 

adding bulk-delete by sudar
------------------------------------------------------------------------

質問:リビジョン番号を取得してシェル変数に格納し、後続のコマンドで使用できるようにするにはどうすればよいですか?

4

2 に答える 2

2

これを試して :

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;}'
r91525
于 2012-12-19T15:13:14.493 に答える
2

これに使用できます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-19T15:13:29.593 に答える