你应该知道的grep命令

上一篇 / 下一篇  2013-05-26 21:07:46 / 个人分类:Linux/Unix

      grep是UNIX和LINUX中使用最广泛的命令之一。grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。grep支持基本正则表达式,也支持其扩展集。grep有三种变形,即:
grep: 标准grep命令,这里主要讨论此格式;
Egrep: 等同于grep -E,扩展grep,支持基本及扩展的正则表达式;
Fgrep: 等同于grep -F,不支持正则表达式,允许查找字符串而不是一个模式。
      grep有很多选项可供使用,有问题找“男人”,会有详细说明,我这里只是说说我所使用到的,最近需要写一些shell脚本,在这过程中有用到grep命令。下面就是几种使用场景:
1.  查找A目录下所有文件中特定内容是否在B目录下对应文件中存在
      解决办法:借助grep把A目录下每个文件里特定内容输出到另外一个文件中,B目录同样处理,使用命令:
     grep  "define" fileA > listA
     grep  "define" fileA > listB
     因为define后面的部分内容不一样,我们的目的是找出类似define("TEST_A","testa");格式而文件没有TEST_A的部分,当然里面有很多不同的define语句。如果使用diff命令来对比的话难以应付,所以可以使用windows下的BeyondCompare工具进行人工比对,不同的内容会标红一目了然,那么至少在逗号前面相同部分是不会标红的,关于这个工具还有更多的用处,感兴趣的可以搜索一下。
2.  要对某目录下除了个别文件外的所有内容打包压缩
      解决办法:使用grep -v注意是小写的v,意为不包含匹配的行,而大写的V意为版本。
      完整命令可以写为:
      ls PATH | grep -v '.log' | grep -v '.tar.gz' > tar.list
      目的把需要打包的文件及目录名(排除.log及.tar.gz后缀名文件)写入tar.list
      第二步即进行打包操作:
      cat tar.list | xargs tar -zcvf target.tar.gz
      把cat出的结果作为参数传入管道后面执行打包命令,这也是xargs的用法.
3.  找出目录下最新的满足"target_数字"格式的目录
     解决办法: 使用grep -e当然使用-E也可以。
     完整命令为:
     ls PATH --sort=time | grep -e  resource_\d* | head -1
     使用ls的选项--sort=time时间排序排列,而head即是获取命中的第一部分。

===========================

添加微信zzzmmmkkk,可以通过:

1. 请在微信添加好友->搜索公众账号里查找zzzmmmkkk

2. 或者点击本文右上角按钮后选择关注公众账号

zzzmmmkkk,本名赵敏科,6测试经验,从事过多年功能测试,性能测试自动化测试,乐于分享。

不定期发布有关测试技术文章,测试经验分享,测试思考和问题探讨

===========================


TAG: linux命令 Linux命令 grep用法

 

评分:0

我来说两句

Open Toolbar