xargsスキスキ

2009/05/15

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でシェルを起動するってやってことが無かったけど、ダメなのかな?

Comments are closed.