2016-07-30 50 views
0

我正在寻找使用grep的文件中的字符串目录(在for循环)如何在bash脚本中实现grep?

for file in .* *; do 
    if [[ -f "$file" && `grep -r "$pattern" "$file"` ]]; then 
    path=`pwd`/"$file" 
    echo "$path" 
    fi 
done 
+1

确定搜索和你得到错误或者没有结果等?花点时间提出您的问题以获得快速回复。 – SMA

+1

按顺序缺少一个关闭'fi;'和一个关闭'done;'。 –

+0

另外如果字符串出现多次,即在不同的文件? –

回答

2

避免for循环,并使用类似

grep -l "${pattern}" ${PWD}/.* ${PWD}/* 

或更好

find ${PWD} -type f -exec grep -l "${pattern}" {} + 
1

使用find命令。到当前文件夹

find . -exec grep "$pattern" {} \; -print' 

在搜索,在特定的文件夹

find /home/hduser -exec grep "$pattern" {} \; -print'