find ./ -name “*.[ch]” | xargs grep “\” | grep -v “//” | awk -F: ‘{print $1;}’ | uniq | xargs svnann_user.sh
てな感じで、printfを使ったソースを洗い出して、そのファイルに関わったsvnのチェックインユーザを探そうとしたのですがうまく行かず。
svnann_user.shは次のような感じ。ここでも grep “\” を入れた方が良いような気もするけどシェルに渡す引数が面倒なのでこうしてます。
#!/bin/sh
echo “—“
echo $1
svn ann –username xxx –password xxx $1 | awk ‘{print $2;}’| sort | uniq
結果として期待しているのは、
—
./src1.c
user1
user2
user3
user4
—
./src2.c
user2
user3
なんて出てくれるかな? と、思ったのですが、最初に見つかったファイル1個で止まってしまう。
find ./ -name “*.[ch]” | xargs grep “\” | grep -v “//” | awk -F: ‘{print $1;}’ | uniq
だけだとファイル名が複数ちゃんと出てくれるのですが…。
そもそもxargsでシェルを起動するってやってことが無かったけど、ダメなのかな?