私はsvn info
を解析してBashの$PS1
の適切な文字列を作成するスクリプト(source)を得ました。残念ながら、これはPerl 5.8.8を使っている私が使用している1つのシステムでは動作しません - マッチだけでなくすべての行を出力します。 Perl 5.8.8は次のようになりますか?Perl 5.8.8の置換からの一致のみを返します(:Perl "p" regex修飾子に相当)
__svn_ps1()
{
local result=$(
svn info 2>/dev/null | \
perl -pe 's;^URL: .*?/((trunk)|(branches|tags)/([^/]*)).*;\2\4 ;p')
if [ -n "$result" ]
then
printf "${1:- (%s)}" $result
fi
}
5.10からの出力はスペース、括弧、支店名、タグ名またはtrunk
の1、およびエンド括弧が含まれています。 Perl 5.8.8からの出力(最後のp
なし)は、とのsvn info
出力のスペースで区切られた部分の丸括弧で囲まれた部分を含んでいます。
可能な回避策は、svn
とperl
コマンドの間に単純なgrep '^URL: '
が含まれていますが、これはBashプロンプトごとに実行されるため、避けたいと考えていました。
あなたは何をしようとしているのか説明できますか?入力ファイルと期待する出力を与えます。 – justintime
たぶん私は詰まったレコードのように聞こえるかもしれませんが、 "入力ファイルと出力が期待どおりであることをあなたが何をしようとしているのか説明できますか?"あなたは半分のベーキングソリューションをたくさん提示していますが、私はあなたが望むものを解決することはできません。 – justintime