ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2010年10月21日 星期四

find command in envsetup.sh

Android 的 envsetup.sh 中有 search command , cgrep, jgrep : function jgrep() { find . -type f -name "*\.java" -print0 | xargs -0 grep --color -n "$@" } function cgrep() { find . -type f -name "*\.c*" -print0 | xargs -0 grep --color -n "$@" } 可以學起來,search Makefile.. mk 等等其他檔案用。 還有一個是針對 目錄的:resgrep 先找出所有 名為 res 的 folder,再到所有 res folder 裡的.xml 檔裡找.. function resgrep() { for dir in `find . -name res -type d`; do find $dir -type f -name '*\.xml' -print0 | xargs -0 grep --color -n "$@"; done; } 稍微筆記一下: find
  • -type 指定目錄(d) 或是檔案 (f)
  • -name 指定match pattern (string)
-print0, xargs -0
  • find 的輸出用 NULL (0x00) 作結尾,不用 newline
  • xargs 把 0x00 作分別字元,不用 space
find 如果不要包含 "." 開頭的檔案/目錄。可以用 find . -not -name '.*' find 如果要包含很多檔名 pattern,可以用 -o -name 來加: find . -name '*\.java' -o -name '*\.c*' 但是一個 -o 有自己的 option,所以配合起來變成: find . -name '*\.c' -print0 -o -name '*\.h' -print0 | xargs -0 grep pattern

沒有留言:

標籤

網誌存檔