[bash] Subversion の diff で差分のあるファイルを抽出するスクリプト

前回は bash を利用して git の diff で差分のあるファイルを抽出するためのスクリプトを詳解しました。

今回は Subversion の diff での抽出方法を詳解します。ほとんど同じですが・・・。

#!/bin/bash
rm -rf ~/diff_file
echo "以下のファイルを作成しました"
cmd="`svn diff | grep "^Index: " | sed 's/^Index: //'`"
for file in $cmd
do
	path=${file%/*}
	mkdir -p ~/diff_file/${path}
	cp $file ~/diff_file/$file
	echo $file
done

前回の git 版と違う部分のみ説明します。
■ 4行目

grep "^Index:"

svn で diff を表示すると色々出てきますが、その中から grep で先頭が「Index:」で始まる行のみを抽出します。
その後「Index:」という文字はいらないので、

sed 's/^Index: //'

にて「Index:」を空文字で置換します。
すると、ファイルパスのみの文字列情報になります。

あとは、Gitの時と同じですね!

The following two tabs change content below.

ロゴスウェア

ロゴスウェア株式会社は、インターネットや情報技術を使って学習に革新的進化をもたらす製品を開発することを目標に、2001年7月に設立されたテクノロジー系ベンチャー企業です。

Comments are closed.