查詢目錄下檔案中是否包含某字串的shell指令碼

2021-06-18 16:20:59 字數 1314 閱讀 7790

最近幾天在看前幾屆師兄寫的乙個專案,經常需要查詢變數和函式的定義,一直用命令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 被查詢的字...