在linux目录下搜索文本内的字符串
2014-03-17 15:52
197 查看
# !/bin/bash #在某个目录下所有文件中进行查找字符串 #该bash第一个参数代表目录,第二个参数代表查找内容 #返回文本名和字符串坐在行 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #判断参数是否正确 if [ $# -ge 2 ]; then directory=$1 stringname=$2 else echo -e "you must input the directory and string" fi #递归获得所有文件名 function searchfile() { filenames=`ls $1` for filename in $filenames do filename=${1}"/"$filename if [ -d $filename ] ; then #为目录是递归下去查找文件 #echo "$filename" cd $filename #exit searchfile $filename cd .. # 记得递归完成后要返回到原始目录,有点类似回溯法(循环+递归) elif [ -f $filename ] ; then searchstring $filename else echo "None" fi done } #在文件中查找我们需要的字符串并且获取行号,其功能其实是可以用grep -n 查找内容代替的 function searchstring() { links=`wc -l $1 | cut -d " " -f1` for ((i=1;i<=$links;i++)) do words=`head -$i $1|tail -1 ` #echo $words for word in $words do #echo $word test $word == $stringname && echo "--------------- $1 行号: $i---------------"&& echo "该行内容为:$words" done done } searchfile $directory
在写的过程中发现几点需要注意的:
1。变量的使用。除了初始化的时候,一般使用变量时都应该注意是否要使用$,而且一般的情况都是要得。
2. 路径的问题。在命令行pash下我们都会有当前路径,所以可以使用相对路径,但是在自己写脚本时,应该使用绝对路径比较好
相关文章推荐
- Linux下搜索指定目录下文件中特定字符串并高亮显示匹配关键词
- linux命令之目录监控 字符串拆分 监控命令运行结果 统计行数 去除文本头尾空格 获取网卡名浮点数运算等命令使用技巧
- linux 查找目录下文本内容字符串
- linux -- 搜索目录下所有具有某个字符串的文件夹
- Linux中替换文本中的字符串
- linux中查找指定字符串并输出到指定目录
- Grep linux文本搜索
- linux 下,查询某个文件位置 & 编辑文本时,定位文件中某个字符串位置
- linux查找目录下的所有文件中是否含有某个字符串
- linux 搜索后内容复制到指定目录
- python 字符串过滤技巧 搜索目录
- Linux中搜索目录和子目录下含有关键字的文件
- linux中搜索指定字符串的方法
- linux下查找某目录下所有文件包含某字符串的命令
- Linux搜索文件及目录命令
- linux下查找某个目录下包含某个字符串的文件
- linux grep命令,强大的文本搜索
- linux查找目录下的所有文件中是否含有某个字符串
- 工作目录 python格式化字符串 logging不输出 linux其他用户执行权限 2016.08.19回顾
- Linux查找和替换目录下所有文件中字符串