とかあったらいいなと思いつつ、自分用のメモです。
find
apply.cがどこにあるか探したい。findのnameオプションで探す。
/Users/yasuhisa/Downloads/R-2.8.0/src% find . -name apply.c ./main/apply.c
正規表現を混じえて、検索したい
Rだとapply、tapplyなどのapplyファミリーがあるが、まとめて場所を探してきたい。
/Users/yasuhisa/Downloads/R-2.8.0/src% find . -regex ".*apply.*" ./library/base/man/apply.Rd ./library/base/man/eapply.Rd ./library/base/man/lapply.Rd ./library/base/man/mapply.Rd ./library/base/man/rapply.Rd ./library/base/man/tapply.Rd ./library/base/R/apply.R ./library/base/R/eapply.R ./library/base/R/lapply.R ./library/base/R/mapply.R ./library/base/R/sapply.R ./library/base/R/tapply.R ./library/stats/man/dendrapply.Rd ./library/stats/man/kernapply.Rd ./main/apply.c ./main/apply.d ./main/apply.o ./main/mapply.c ./main/mapply.d ./main/mapply.o
Macでfindの結果をxargsに渡す時には
空白が問題となる時があるらしいので、
find . -type f -name '*~' -print0 | xargs -0 rm
という感じでやったほうがいいらしい。
grep
$ grep[オプション][検索文字列][ファイル名]
/Users/yasuhisa/Downloads/R-2.8.0/src/main% grep sapply *.c logic.c: avoid warnings with empty lists coming from sapply */ logic.c: then sapply was often what was intended. */
行番号も一緒に表示する
/Users/yasuhisa/Downloads/R-2.8.0/src/main% grep -n sapply *.c logic.c:378: avoid warnings with empty lists coming from sapply */ logic.c:386: then sapply was often what was intended. */
一致したファイル名のみ表示する
/Users/yasuhisa/Downloads/R-2.8.0/src/main% grep -l sapply *.c logic.c
ファイル名は表示させたくない
/Users/yasuhisa/hatena/syou6162/diary% grep -h id:wakuteka *.txt | head -n 3 -午後にid:wakutekaと会った -<del>id:hogelog((この前のコメント欄によれば))</del>とid:wakutekaのLTっぽい感じのお話し -id:wakuteka
一致した数をファイルごとに知りたい
/Users/yasuhisa/hatena/syou6162/diary% grep -c id:wakuteka *.txt | tail -n 7 2008-12-17.txt:0 2008-12-18.txt:0 2008-12-19.txt:0 2008-12-20.txt:16 config.txt:0 cookie.txt:0 touch.txt:0
/Users/yasuhisa/hatena/syou6162/diary% grep -ch id:wakuteka *.txt | sort -n | uniq 0 1 2 3 17