2016-06-20 8 views
0

に配列し、サブストリングに結果を格納する私は、次のように変数に格納されたのsvnにコミットするファイルのリストがあります:バッシュ

U data0.xml A data1.xml UU all_data.xml 

がどのように削除することができます。

REPOS="$1" 
TXN="$2" 
DETAILED_FILES=`svnlook changed -t $TXN $REPOS` 

DETAILED_FILESは次のようになりますすべてのタイプの接頭辞を変更しますか?

U |data0.xml

また、これらを配列に格納することはできますか?

これらのファイルの完全なパスはsvnlookで取得できますか?

答えて

2

より適切な方法は、次のようになります。

repos=$1 
txn=$2 

files=() 

while read -r _ f; do 
    files+=("$f") 
done < <(svnlook -t "$txn" "$repos") 

マインド引用符! (あなたは無用でも無害ですが、必須のものは省略して引用符を使用しました)。

+0

あなたは本当のMVP –

+0

私は 'svnlook'によってコミットされたファイルの完全なパスを得ることができますか? –

+0

@ rz3r0私は 'svn'をよく知っているので、その質問に答えることができます。しかし、 'files + =(" $ f ")'を 'files + =("/full/path/to/the files/$ f ")に置き換えることで、配列全体に簡単に追加できます。 ) '。これが適用可能かどうかわからない。 –

0

はい、ちょうど行います

FILES=($(echo $DETAILED_FILES | cut -c 3-)) 

FILESは配列であり、あなたはそれらを反復処理により、配列の要素にアクセスすることができます明示的に

for i in "${FILES[@]}"; do echo "$i"; done 

${FILES[0]}はあなたの最初の要素を取得します、 ${FILES[1]}秒など。

私はsvnlookに慣れていないので、2番目の質問に答えることはできません。

+0

thanks mate。それは役に立ちました –