使用方法:
chgrep <file_type> <find_in_sub_dir> <grep_string> [case_sensive]
<file_type> :有如下可以选:
ch : 搜索 *.c 和 *.h 文件类型。
cpph : 搜索 *.cpp 和 *.h 文件类型。
cc: : 搜索 *.cpp 和 *.c 文件类型。
ccj: 搜索 *.c *.cpp 和 *.h 文件类型。
java:搜索 *.java 和 *.h 文件类型。
asm: 搜索 *.s 和 *.S 文件类型。 忽略大小写。
mk : 搜索 *.mk 和 *.mak 文件类型。针对makefile的查找。
<find_in_sub_dir> :可以指定多个目录。这个目录是从当前目录下的 子目录。多个目录用 英文逗号(,)隔开.
<grep_string> : 要在以上查找到的文件中的,字符串。
[case_sensive] : 可选的。指定 “ <grep_string>” 是否大小写敏感。默认是 大小写匹配。 如果这里指定 -i 的话,就大小写都无所谓。
实例:chgrep ccj kernel,frameworks/ "wpa_supplicant"
运行结果,可以查看本文最后面的“例子”。
实现脚本如下:
文件名:chgrep
#!/bin/bash
#curr_dir=$(pwd)/
ign_case=$4
#echo $curr_dir
sear_dirs=${2//','/' '}
echo Sear_dirs:$sear_dirs
search_dirs=($sear_dirs)
echo search_dirs:$search_dirs
if [ $# -lt 3 ]; then
echo "please append 2 args behind the chgrep!"
echo "Help(Example):"
echo "chgrep <file_type> <find_in_sub_dir> <grep_string>"
echo "chgrep ch mediatek/ blacklight :is finding blacklight in *.c *.h files in mediatek dir"
echo "<file_type>:: ch: *.c,*.h; cpph ;cc;ch+k;java;asm;"
else
echo Search_dir:$2
echo Search_Str:$3
echo Case_sensi:$4
for idx in $sear_dirs ; do
echo "----Searching dir: $idx for greping str:$3"
if [ "$1" = "ch" ]; then
echo " Search c and h:"
find $curr_dir$idx \( -iname "*.c" -o -iname "*.h" \) | xargs grep $ign_case --color=auto "$3"
find $curr_dir$idx \( -iname "*.S" -o -iname "*.asm" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "ch+k" ]; then
echo " Search c and h in dir(kernel,$2):"
find $curr_dir$idx \( -name "*.c" -o -name "*.h" \) | xargs grep $ign_case --color=auto "$3"
find $curr_dir$idx \( -iname "*.S" -o -iname "*.asm" \) | xargs grep $ign_case --color=auto "$3"
echo " ----------results in kernel:"
find kernel \( -name "*.c" -o -name "*.h" \) | xargs grep $ign_case --color=auto "$3"
find kernel \( -iname "*.S" -o -iname "*.asm" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "cpph" ]; then
echo " Search cpp and h:"
find $curr_dir$idx \( -name "*.cpp" -o -name "*.h" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "cc" ]; then
echo " Search cpp and c:"
find $curr_dir$idx \( -name "*.c" -o -name "*.cpp" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "java" ]; then
echo " Search java and h:"
find $curr_dir$idx \( -name "*.java" -o -name "*.h" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "ccj" ]; then
echo " Search *.c and *.h:"
find $curr_dir$idx \( -name "*.c" -o -name "*.h" \) | xargs grep $ign_case --color=auto "$3"
echo " Search *.cpp and *.java:"
find $curr_dir$idx \( -name "*.cpp" -o -name "*.java" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "asm" ]; then
echo " Search assemble ,*.S,*.asm:"
find $curr_dir$idx \( -iname "*.S" -o -iname "*.asm" \) | xargs grep $ign_case --color=auto "$3"
elif [ "$1" = "mk" ]; then
echo " Search makefile ,*.mk,*.mak, makefile, GNUmakefile:"
find $curr_dir$idx \( -iname "*.mk" -o -iname "*.mak" \) | xargs grep $ign_case --color=auto "$3"
find $curr_dir$idx \( -iname "makefile" -o -iname "GNUmakefile" \) | xargs grep $ign_case --color=auto "$3"
else
echo "--->Search default(all files):"
find $curr_dir$idx -iname "*" | xargs grep $ign_case --color=auto "$3"
fi
done
fi
例子:
#chgrep ccj kernel,frameworks/ "wpa_supplicant"
Sear_dirs:kernel frameworks/
search_dirs:kernel
Search_dir:kernel,frameworks/
Search_Str:wpa_supplicant
Case_sensi:
----Searching dir: kernel for greping str:wpa_supplicant
Search *.c and *.h:
kernel/include/linux/nl80211.h: * management entities such as wpa_supplicant react to management frames
kernel/drivers/net/wireless/hostap/hostap_hw.c: * if wpa_supplicant is used. */
kernel/drivers/net/wireless/hostap/hostap_info.c: * frames and can confuse wpa_supplicant about the current association
kernel/drivers/net/wireless/hostap/hostap_ioctl.c: * wpa_supplicant to control them internally.
kernel/drivers/net/wireless/hostap/hostap_ioctl.c: * wpa_supplicant to control them internally.
kernel/drivers/net/wireless/bcmdhd/wl_cfg80211.h:/* In case of WPS from wpa_supplicant, pairwise siute and group suite is 0.
kernel/drivers/net/wireless/bcmdhd/wl_cfg80211.c: * With respect to these flags, wpa_supplicant doesn't start p2p operations on 5GHz channels.
kernel/drivers/net/wireless/bcmdhd/wl_cfg80211.c: /* wpa_supplicant switches the third and fourth quarters of the TKIP key */
kernel/drivers/net/wireless/bcmdhd/wl_cfg80211.c: /* WAR: set err = ok to prevent cookie mismatch in wpa_supplicant
kernel/drivers/net/wireless/ipw2x00/ipw2100.c: * wpa_supplicant toggles the security capability of the driver, which
kernel/drivers/net/wireless/ipw2x00/ipw2100.c: /* This is called when wpa_supplicant loads and closes the driver
kernel/drivers/net/wireless/ipw2x00/ipw2100.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/net/wireless/ipw2x00/ipw2100.c: * wpa_supplicant will control these internally
kernel/drivers/net/wireless/ipw2x00/ipw2200.c: /* This is called when wpa_supplicant loads and closes the driver
kernel/drivers/net/wireless/ipw2x00/ipw2200.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/net/wireless/ipw2x00/ipw2200.c: * wpa_supplicant will control these internally
kernel/drivers/net/wireless/rndis_wlan.c:/* NDIS data structures. Taken from wpa_supplicant driver_ndis.c
kernel/drivers/net/wireless/rndis_wlan.c: /* wpa_supplicant gives us the Michael MIC RX/TX keys in
kernel/drivers/net/wireless/prism54/isl_ioctl.c: * wpa_supplicant will control these internally
kernel/drivers/net/wireless/libertas/cfg.c: * - neither "iw" nor "wpa_supplicant" won't call this during
kernel/drivers/staging/vt6655/iwctl.c: out://not completely ...not necessary in wpa_supplicant 0.5.8
kernel/drivers/staging/vt6655/dpc.c: //send event to wpa_supplicant
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: wpa_supplicant wants to add a PMKID/BSSID to driver.
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: If cmd is IW_PMKSA_REMOVE, it means the wpa_supplican wants to
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: /* wpa_supplicant is enabling tkip countermeasure. */
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: /* wpa_supplicant is disabling tkip countermeasure. */
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c:static int wpa_supplicant_ioctl(struct net_device *dev, struct iw_point *p)
kernel/drivers/staging/rtl8712/rtl871x_ioctl_linux.c: return wpa_supplicant_ioctl(dev, &wrq->u.data);
kernel/drivers/staging/rtl8712/rtl871x_security.h: * layer ioctl(wpa_supplicant or wzc) */
kernel/drivers/staging/rtl8192e/rtllib.h:extern int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee,
kernel/drivers/staging/rtl8192e/rtllib_wx.c: * wpa_supplicant to control them internally.
kernel/drivers/staging/rtl8192e/rtllib_softmac.c: /* This is called when wpa_supplicant loads and closes the driver
kernel/drivers/staging/rtl8192e/rtllib_softmac.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/staging/rtl8192e/rtllib_softmac.c:int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p,
kernel/drivers/staging/rtl8192e/rtllib_softmac.c:EXPORT_SYMBOL(rtllib_wpa_supplicant_ioctl);
kernel/drivers/staging/rtl8192e/rtl8192e/rtl_core.c: ret = rtllib_wpa_supplicant_ioctl(priv->rtllib, &wrq->u.data,
kernel/drivers/staging/vt6656/iwctl.c: out://not completely ...not necessary in wpa_supplicant 0.5.8
kernel/drivers/staging/vt6656/dpc.c: //send event to wpa_supplicant
kernel/drivers/staging/rtl8192u/r8192U_core.c: ret = ieee80211_wpa_supplicant_ioctl(priv->ieee80211, &wrq->u.data);
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211.h:#define ieee80211_wpa_supplicant_ioctl ieee80211_wpa_supplicant_ioctl_rsl
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211.h:extern int ieee80211_wpa_supplicant_ioctl(struct ieee80211_device *ieee, struct iw_point *p);
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c: //choose what wpa_supplicant gives to associate.
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c: /* This is called when wpa_supplicant loads and closes the driver
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:int ieee80211_wpa_supplicant_ioctl(struct ieee80211_device *ieee, struct iw_point *p)
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c: //IEEE_DEBUG_INFO("wpa_supplicant: len=%d\n", p->length);
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:EXPORT_SYMBOL(ieee80211_wpa_supplicant_ioctl);
kernel/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c: * * wpa_supplican to control them internally.
kernel/drivers/staging/rtl8187se/r8180_core.c: ret = ieee80211_wpa_supplicant_ioctl(priv->ieee80211, &wrq->u.data);
kernel/drivers/staging/rtl8187se/ieee80211/ieee80211.h:extern int ieee80211_wpa_supplicant_ioctl(struct ieee80211_device *ieee, struct iw_point *p);
kernel/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c: /* This is called when wpa_supplicant loads and closes the driver
kernel/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c: * wpa_supplicant calls set_wpa_enabled when the driver
kernel/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:int ieee80211_wpa_supplicant_ioctl(struct ieee80211_device *ieee, struct iw_point *p)
kernel/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c: //IEEE_DEBUG_INFO("wpa_supplicant: len=%d\n", p->length);
kernel/drivers/staging/rtl8187se/ieee80211/ieee80211_wx.c: * * wpa_supplicant to control them internally.
kernel/net/wireless/nl80211.c: * a hostapd/wpa_supplicant issue -- it always includes the
kernel/net/wireless/scan.c: * Otherwise, wpa_supplicant gets completely confused with
Search *.cpp and *.java:
----Searching dir: frameworks/ for greping str:wpa_supplicant
Search *.c and *.h:
Search *.cpp and *.java:
frameworks/base/wifi/java/android/net/wifi/WifiInfo.java: * in an event sent by {@code wpa_supplicant}.
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * From <code>defs.h</code> in <code>wpa_supplicant</code>.
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * These enumeration values are used to indicate the current wpa_supplicant
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * state constants in <code>defs.h</code> in <code>wpa_supplicant</code>.
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * wpa_supplicant refuses any new operations that would
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * Inactive state (wpa_supplicant disabled).
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * configuration. wpa_supplicant is not trying to associate with a new
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * This state is entered when wpa_supplicant starts scanning for a
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * This state is entered when wpa_supplicant has found a suitable BSS
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * This state is entered when wpa_supplicant has found a suitable BSS
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * (with or without WPA/WPA2), wpa_supplicant remains in this state
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * No connection to wpa_supplicant.
frameworks/base/wifi/java/android/net/wifi/SupplicantState.java: * wpa_supplicant is not running and/or we have not been able
frameworks/base/wifi/java/android/net/wifi/WifiConfiguration.java: * String representing the keystore URI used for wpa_supplicant.
frameworks/base/wifi/java/android/net/wifi/WifiConfiguration.java: * Priority determines the preference given to a network by {@code wpa_supplicant}
frameworks/base/wifi/java/android/net/wifi/WifiMonitor.java: * Listens for events from the wpa_supplicant server, and passes them on
frameworks/base/wifi/java/android/net/wifi/WifiMonitor.java: * Names of events from wpa_supplicant (minus the prefix). In the
frameworks/base/wifi/java/android/net/wifi/WifiMonitor.java: if (false) Log.i(TAG, "Received wpa_supplicant event with empty event name");
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java: /** The network id in the wpa_supplicant */
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java: * Note: The events formats can be looked up in the wpa_supplicant code
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java: * driver through wpa_supplicant and handles the event responses through WifiMonitor.
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java: /* Two minutes comes from the wpa_supplicant setting */
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java: /* Service discovery request ID of wpa_supplicant.
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java: * wpa_supplicant and mGroups.
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java: * Update service discovery request to wpa_supplicant.
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java: * Clear service discovery request in wpa_supplicant
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java: // These definitions match the ones in wpa_supplicant
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java: * Note: The events formats can be looked up in the wpa_supplicant code
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pProvDiscEvent.java: * Note: The events formats can be looked up in the wpa_supplicant code
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java: * Return wpa_supplicant request string.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java: * @return wpa_supplicant request string.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceResponse.java: * @param supplicantEvent wpa_supplicant event string.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo.java: * Create wpa_supplicant service query for upnp.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo.java: * @return wpa_supplicant service query for upnp
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo.java: * Create wpa_supplicant service query for PTR record.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo.java: * @return wpa_supplicant service query.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo.java: * Create wpa_supplicant service query for TXT record.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo.java: * @return wpa_supplicant service query.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java: * the list of query string for wpa_supplicant
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java: * @param queryList query string for wpa_supplicant
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java: * Return the list of the query string for wpa_supplicant.
frameworks/base/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java: * @return the list of the query string for wpa_supplicant.
frameworks/base/wifi/java/android/net/wifi/WifiConfigStore.java: * when restoring an old wpa_supplicant.conf or upgrading from a previous
frameworks/base/wifi/java/android/net/wifi/WifiConfigStore.java: * @param netId the wpa_supplicant's net ID
frameworks/base/wifi/java/android/net/wifi/WifiConfigStore.java: // Now tell the wpa_supplicant the new configuration values.
frameworks/base/wifi/java/android/net/wifi/WifiNative.java: * MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details
frameworks/base/core/java/android/provider/Settings.java: * Whether wpa_supplicant will connect to access point automatically
frameworks/base/core/java/android/provider/Settings.java: * wpa_supplicant will connect to access point automatically
frameworks/base/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/WifiConnectionTest.java: // enable Wifi and verify wpa_supplicant is started
frameworks/base/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/WifiConnectionTest.java: assertTrue("wpa_supplicant is not started ", mAct.mWifiManager.pingSupplicant());
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java: private static final String FILE_WIFI_SUPPLICANT = "/data/misc/wifi/wpa_supplicant.conf";
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java: "/system/etc/wifi/wpa_supplicant.conf";
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java: Log.w(TAG, "Couldn't copy wpa_supplicant file");