Chinaunix首页 | 论坛 | 博客
  • 博客访问: 48402
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-31 09:37
文章分类

全部博文(17)

文章存档

2016年(3)

2015年(14)

我的朋友

分类: LINUX

2015-10-28 09:17:10

有时候需要在一个目录下的缩影文件查找含有指定字符串的文件 及字符串在文件中的定位

Grep –r “pattern” .

grep –r –exclude=.svn “pattern” .  负略主目录下某个目录prune


find . –path “*/.svn” –prune –o –print | xargs grep “CodeType” -n

grep -A4 -B4 -r XXX *


grep 统计单词数量:
echo "he is a good man , is and is" | grep -o "is"

grep退出状态: 查看返回值$?

 0: 表示成功;
    1: 表示在所提供的文件无法找到匹配的pattern;
    2: 表示参数中提供的文件不存在。


 export LANG=zh_CN  #设置当前的语言环境为中文。

grep '[a-z]\{9\}' testfile #打印所有包含每个字符串至少有9个连续小写字符的字符串的行。

grep '\(3\)\.[0-9].*\1    *\1' testfile 第一个字符是3,紧跟着一个句点,然后是任意一个数字,然后是任意个任意字符,然后又是一个3,然后是制表符,然后又是一个3,需要说明的是,下面正则中的\1表示\(3\)。

grep '\

grep '\' testfile  #打印所有包含单词north的行。

 

grep -n '^south' testfile  #-n选项在每一个匹配行的前面打印行号。

grep -i 'pat' testfile     #-i选项关闭了大小写敏感。

grep -v 'Suan Chin' testfile #打印所有不包含Suan Chin的行。

grep -l 'ss' testfile  #-l使得grep只打印匹配的文件名,而不打印匹配的行。

grep -c 'west' testfile #-c使得grep只打印有多少匹配模板的行。

grep -w 'north' testfile #-w只打印整个单词匹配的行。

grep -C 2 Patricia testfile #打印匹配行及其上下各两行。

grep -B 2 Patricia testfile #打印匹配行及其前两行。

grep -A 2 Patricia testfile #打印匹配行及其后两行。

 
3.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。
grep -xvf a b | tee c | wc -l

#  if  grep -q hello a.txt ; then echo yes;else echo no; fi 
yes
# if grep -q word a.txt; then echo yes; else echo no; fi
no

grep -P "(.*)(\..*)" 支持perl正则表达式

grep 匹配tab:
grep  $'\t'next-server /etc/dhcp/dhcpd.conf

-exec: 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}和\;之间的空格,同时两个{}之间没有空格
    -ok:   其主要功能和语法格式与-exec完全相同,唯一的差别是在于该选项更加安全,因为它会在每次执行shell命令之前均予以提示,只有在回答为y的时候,其后的shell命令才会被继续执行。需要说明的是,该选项不适用于自动化脚本,因为该提供可能会挂起整个自动化流程。
   

find . -ctime -2 -exec ls -l {} \;#找出距此时2天之内创建的文件,同时基于find的结果,应用-exec之后的命令,即ls -l,从而可以直接显示出find找到文件的明显列表。

 

find . -name "*.log" -mtime -1 -exec rm -f {} \; #找到文件名为*.log, 同时文件数据修改时间距此时为1天之内的文件。如果找到就删除他们。有的时候,这样的写法由于是在找到之后立刻删除,因此存在一定误删除的危险。

find . -name "*.dat" -mtime -1 -ok rm -f {} \;    在控制台下,为了使上面的命令更加安全,我们可以使用-ok替换-exec,见如下示例:

阅读(950) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Nginx fastcgi perl (pl、cgi)

给主人留下些什么吧!~~