最近幾天在看前幾屆師兄寫的乙個專案,經常需要查詢變數和函式的定義,一直用命令find ./ -type f -print|xargs grep 查詢內容,感覺很不靈活,正好打算學習shell,就自己寫了個shell指令碼,在此作下記錄。
此shell的功能是查詢某個目錄下的所有檔案中包含某個字串的行,並以「檔名-行號」顯示:這個專案目錄下只有一層子目錄,所以這個shell中只考慮了兩層目錄,還有需要對檔案許可權、型別做進一步處理,輸出格式也需要修改下。
#!/bin/bash
if [ $# -ge 1 ]
then
scont=$1
else
echo "please type in the word to be searched"
exit 1
fipath="."
if [ $# -ge 2 ]
then
path=$2
fifilelist=`ls $path`
#echo $filelist
for file in $filelist
do#echo $file
if test -f $file
then
#echo "ordinary file $file"
#res=''
if res=`grep -n $scont $file`
then
echo "--------------has find in $file-------------"
for item in $res
do echo $item
done
fielif test -d $file
then
#echo "directory $file"
sub=`ls $file` #search depth is two level,if want more ,need recursive function
for subfile in $sub
doif test -f ./$file/$subfile
then
#res=''
if res=`grep -n $scont ./$file/$subfile`
then
echo "--------------has find in ./$file/$subfile-------------"
for item in $res
do echo $item
done
fifi
done
fidone
linux下查詢某目錄下所有檔案包含某字串的命令
linux下查詢某目錄下所有檔案包含某字串的命令 從檔案內容查詢匹配指定字串的行 grep 被查詢的字串 檔名 從檔案內容查詢與正規表示式匹配的行 grep e 正規表示式 檔名 查詢時不區分大小寫 grep i 被查詢的字串 檔名 查詢匹配的行數 grep c 被查詢的字串 檔名 從檔案內容查詢不...
linux下查詢某目錄下所有檔案包含某字串的命令
linux下查詢某目錄下所有檔案包含某字串的命令 從檔案內容查詢匹配指定字串的行 grep 被查詢的字串 檔名 從檔案內容查詢與正規表示式匹配的行 grep e 正規表示式 檔名 查詢時不區分大小寫 grep i 被查詢的字串 檔名 查詢匹配的行數 grep c 被查詢的字串 檔名 從檔案內容查詢不...
linux下查詢某目錄下所有檔案包含某字串的命令
linux下查詢某目錄下所有檔案包含某字串的命令 linux下查詢某目錄下所有檔案包含某字串的命令 從檔案內容查詢匹配指定字串的行 grep 被查詢的字串 檔名 www.2cto.com 從檔案內容查詢與正規表示式匹配的行 grep e 正規表示式 檔名 查詢時不區分大小寫 grep i 被查詢的字...