Linux_shell脚本_遍历⽂件夹下所有⽂件参考:
实现:从给定⽬录树中grep出含制定字符串的⾏,并给出所在路径
代码如下所⽰:
#!/bin/sh -
if [ $# -ne 2 ]
then echo "usage traverse <dir> <str>"
exit
fi
{
function ergodic(){
for file in ` ls $1`
do
if [ -d $1"/"$file ] #如果 file存在且是⼀个⽬录则为真
then
ergodic $1"/"$file $2
else
local path=$1"/"$file #得到⽂件的完整的⽬录
local name=$file      #得到⽂件的名字
if [[ `cat $path | grep $2` ]]
then echo ""
echo LOC:$path
fi
cat –n $path | grep $2
fi
done
}
}
ergodic $1 $2
效果图:
linux查看当前文件夹内容还有⼀种⽅法,可以直接调⽤find指令完成查⽂件,将结果输出⾄grep(参考APUE(3),p190)
对于find,我们使⽤选项-type f限制输出列表只包含普通⽂件。
这样做的⽬的是,grep命令不能在⽬录中搜索模式,我们也想避免不必要的出错消息。
find . -type f -print | xargs grep STU
ps:如果要想在压缩⽂件内寻⽂本⽚段,可以使⽤:
find . -type f -print | xargs bzgrep STU
done

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。