2017-02-13 14 views
0

git describe --always --dirtyコマンドは、 my_tag-42-githash-dirtyのような出力を返します。Groovyでupto {(文字列のパターンのn番目の出現)または(連結された文字列のn番目の部分})を削除するには?

私はgithash-dirty情報のみを抽出します。つまり、その前にあるすべての文字を削除します。

私はgit describe --match=NeVMatcH --always --dirtyを回避しました。しかし、私はGroovyでパターン置換を使用するなどの別の解決策が必要です。あるいは別の専用のgitコマンド。どうすれば達成できますか?

また、私のgitタグにも-が含まれていることがあります。同様my-tag-42-githash-dirty

+0

コミットIDだけでインターレスされている場合は、なぜ 'git rev-parse HEAD'を使用しないのですか? – cfrick

+1

gitリファレンスなしで説明してもらえますか? **あなたはどんな弦を持っていますか?**いくつかの例がありますか?あなたはどのような文字列**を**各例から欲しいですか?どのコードを試しましたか?どこに問題がありますか? –

+0

@cfrick私も汚い情報が必要です。 –

答えて

1

私が代わりに後処理のgitのを尋ねるについてのコメントに同意する傾向があるだろうが、あなたは本当にこの使用してグルーヴィーを処理する必要がある場合のように、あなたが何かを行うことができます:印刷され

git describe --always --dirty | groovy -e "print System.in.text.tokenize('-').takeRight(2).join('-')" 

g6d67059-dirty 

e System.inから入力文字列を取り出し、['my','tag','42','githash','dirty']というリストを与えるダッシュ-の文字列をトークン化し、リストの最も右の2つの要素を取り出し、ダッシュを使用して結合します。

私はこれを強くは呼ぶつもりはありませんが、あなたのサンプルデータではうまくいきます。

関連する問題