Chinaunix首页 | 论坛 | 博客

14#

  • 博客访问: 130985
  • 博文数量: 48
  • 博客积分: 1910
  • 博客等级: 上尉
  • 技术积分: 445
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-27 10:38
文章存档

2012年(8)

2011年(2)

2010年(13)

2009年(25)

我的朋友

分类: Python/Ruby

2010-04-23 16:01:29

grep对文件或管道按给定的模式搜索匹配的行。默认情况下,grep打印匹配的行。

 

1.      Grep的严格匹配

 

-w  对于每个单词,进行严格匹配(全字匹配

 

letters, digits, and the underscore(下划线作为单词组成部分

 

-w 不是万能的

$ grep -w '^test' /etc/passwd

test:x:1002:1002::/home/test:/bin/bash

test.k:x:1004:1004::/home/test.k:/bin/sh

 

使用额外的字符加强匹配

 

grep ^test: /etc/passwd

grep ^/data[[:blank:]] /etc/fstab

 

 

2.      grep 高亮显示匹配

 

grep --color ## 自动选择是否高亮

 

grep --color=always ## 强制高亮(匹配到文件,还是高亮)

 

 

 

3.      Grep只打印匹配的部分

grep –o    

eg. Grep –color –o ^2.[0-9]

 

4.      一次性Grep

-m NUM, --max-count=NUM

              Stop reading a file after NUM matching lines.

-q, --quiet, --silent

              Quiet; do not write anything to standard output.  Exit immediately with zero status if any match is found,

 

只想知道能不能找到test的记录行:

grep ^test: /etc/passwd &> /dev/null; then

if (( $? == 0 )); then

echo user test found

fi

 

使用 -m1  -q 只要grep成功一行即退出:

 

if grep -m1 -q ^test: /etc/passwd; then

echo user test found

fi

 

5.      Grep成功的文件名

搜出所有匹配的文件名

grep -l

grep -l -R -m1 $pattern *

find -type f | xargs grep -l -m1 36000

删除这些找到的文件:

find -type f | xargs grep -l -m1 $pattern | xargs rm –v

 

6.      大小写: -i

 

7.      上下n: -n

 

8.      Grep成功的前N行:  grep -B n

 

9.      Grep成功的后N  grep -A n

 

阅读(889) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~