[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.

いしかわ

まだまだ広く浅く勉強中のエンジニア。得意分野はラーメン。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>