Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1934100
  • 博文数量: 389
  • 博客积分: 7877
  • 博客等级: 少将
  • 技术积分: 4531
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-10 14:02
文章分类

全部博文(389)

文章存档

2024年(1)

2022年(1)

2021年(1)

2020年(1)

2019年(1)

2018年(3)

2017年(6)

2016年(4)

2015年(8)

2014年(15)

2013年(31)

2012年(19)

2011年(47)

2010年(33)

2009年(105)

2008年(109)

2007年(4)

分类:

2009-10-28 22:54:46

#!/bin/bash
strings=$1
location=$2

if [ $# -ne 2 ];then
echo "usage ./findstr.sh your_strings your_directory"
else
for i in `ls $location`
do
cat ${location}/${i}|grep -i $strings > /dev/null
if [ $? -eq 0 ];then
echo "\"$strings\" exists in ${i}"
fi
done
fi
exit 0
### go
### ./findstr.sh your_strings your_directory


等待有时间更进一步完善...
后续可以实现查找整个目录下面所有的文件以及文件夹里面的文件,这里还有文件名称问题,如果文件名有空格的话会有问题!

//在类Unix下面默认的IFS是空格,对于文件名来说最好是不要有空格,一旦有空格处理起来还是很麻烦的(我用linux已经有一段时间了,现在早已习惯了将文件名中的空格用下划线取代,建议大家也注意这点)。
想到这里就烦windows, 还有我们早已习惯的Ctrl+C复制,在类Unix下面则是强行中断的意思,现在我已经习惯了用Ctrl+Ins来复制,用Shift+Ins来粘贴,这个在windows下面也同样有效;对于斜杠和反斜杠也是个问题,反斜杠在类Unix里面是转义的功能,但是在windows里面却也用在路径名上面,以前在输入完http:的时候经常不知道该输入斜杠还是反斜杠,后来接触类Unix才知道所有跟网络协议有关的都用斜杠,路径里面也是用斜杠;在windows下面是不区分大小写字母的,这个也是经常搞错的地方,类Unix下面是严格区分的;还有windows下面的回车问题,和类Unix下面的也不一样,ftp时很多人也在这个地方吃过苦头。

还有很多很多,字符编码啊,时区啊,还有更可恶的是windows拒绝遵守行业标准,自己全部封装起来不开放,还不遵循标准!
阅读(5153) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

nivek.cao2011-01-27 13:22:58

cd $HOME/location grep -r "your strings here" *.sh 递归grep, 将会把location文件夹下面所有.sh的文件含有该字符串显示出来 包括location下面的文件夹及其子文件夹 grep -n -i -r strings * -n 是指字符串在文件里面的行数

chinaunix网友2009-11-16 15:49:51

以前都是cd到那个特定目录后 cat *|grep mystring 结果没办法确定字符串是在哪个文件里面,今天发现人家都是用 grep mystring * 这样就搞定了,显示的结果里面会包含字符串所在的文件名