grep文件搜索集合

grep

先放究极公式

grep -rni 'password\|passwd' -C3|grep -e php |grep 'username.*=>' -C3|less

搜索内容

格式及参数

    格式及主要参数
    grep [options]
    主要参数:  grep --help可查看
        -r:目录循环搜索
        -c:只输出匹配行的计数。
        -i:不区分大小写。
        -h:查询多文件时不显示文件名。
        -l:查询多文件时只输出包含匹配字符的文件名。
        -n:显示匹配行及 行号。
        -s:不显示不存在或无匹配文本的错误信息。
        -v:显示不包含匹配文本的所有行。
        --color=auto :可以将找到的关键词部分加上颜色的显示。
    pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达 式的行开始。
    \>:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    *:所有字符,长度可以为0。注意是某一字符n个


输出调整

grep 后面带上-A -B -C 参数可以多显示几行内容


grep -A 5 可以显示匹配内容以及后面的5行内容
grep -B 5 可以显示匹配内容以及前面的5行内容
grep -C 5 可以显示匹配内容以及前后面的5行内容

合并搜索

文本条件匹配

    grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
        例如:grep "abc\|xyz" testfile  表示过滤包含abc或xyz的行
             egrep 'word1|word2' 文件名
             grep -E 'word1|word2' 文件名

    grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

匹配目标文件类型

    grep XXX |grep -e php 

输出模式

输出到文件

    grep XXX /PATH >> /OUTFILE

last查看

    grep XXX /PATH | last

正则表达式

锚点

你可以分别使用 ^ 和 $ 符号来正则匹配输入行的开始或结尾。下面的例子搜索显示仅仅以 vivek 开始的输入行:

grep ^vivek /etc/passwd

输出例子:

vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash
vivekgite:x:1001:1001::/home/vivekgite:/bin/sh

你可以仅仅只搜索出以单词 vivek 开始的行,即不显示 vivekgit、vivekg 等(LCTT 译注:即该单词后面是空格、符号等英文的单词分隔符。)

grep -w ^vivek /etc/passwd
找出以单词 word 结尾的行:

grep 'foo$' 文件名
匹配仅仅只包含 foo 的行:

grep '^foo$' 文件名
如下所示的例子可以搜索空行:

grep '^$' 文件名

字符替换

匹配 Vivek 或 vivek:

grep '[vV]ivek' 文件名

或者

grep '[vV][iI][Vv][Ee][kK]' 文件名

也可以匹配数字 (即匹配 vivek1 或 Vivek2 等等):

grep -w '[vV]ivek[0-9]' 文件名

可以匹配两个数字字符(即 foo11、foo12 等):

grep 'foo[0-9][0-9]' 文件名

不仅仅局限于数字,也能匹配至少一个字母的:

grep '[A-Za-z]' 文件名

显示含有 “w” 或 “n” 字符的所有行:

grep [wn] 文件名

放在括号内的表达式,即包在 “[:” 和 “:]” 之间的字符类的名字,它表示的是属于此类的所有字符列表。标准的字符类名称如下:

[:alnum:]
- 字母数字字符

[:alpha:]
- 字母字符

[:blank:]
- 空字符: 空格键符 和 制表符

[:digit:]
- 数字: '0 1 2 3 4 5 6 7 8 9'

[:lower:]
- 小写字母: 'a b c d e f g h i j k l m n o p q r s t u v w x y z'

[:space:]
- 空格字符: 制表符、换行符、垂直制表符、换页符、回车符和空格键符

[:upper:]
- 大写字母: 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'

在这个例子所示的是匹配所有大写字母:

grep '[:upper:]' 文件名

通配符

你可以使用 “.” 来匹配单个字符。例子中匹配以 “b” 开头以 “t” 结尾的3个字符的单词:

grep '/<b.t/>' 文件名

在这儿,

匹配单词前面的空字符串
匹配单词后面的空字符串

打印出只有两个字符的所有行:

grep '^..$' 文件名

显示以一个点和一个数字开头的行:

grep '^/.[0-9]' 文件名 #注意这里的转义

注意 * 只能匹配某一个字符n次

[root@server ~]$ cat /ss
app/database.php-19-    // 用户名
app/database.php-20-    'username'        => 'www_honglian7001',
app/database.php-21-    // 密码
app/database.php:22:    'password'        => 'wxrM5GtNXk5k5EPX',
[root@server ~]$ grep -n "password.*=>" /ss
4:app/database.php:22:    'password'        => 'wxrM5GtNXk5k5EPX',
[root@server ~]$ grep -n 'password*=>' /ss
[root@server ~]$ grep -n 'password.*=>' /ss
4:app/database.php:22:    'password'        => 'wxrM5GtNXk5k5EPX',
[root@server ~]$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值