IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    linux grep命令技巧

    mckee发表于 2015-12-09 22:57:45
    love 0

    linux grep是一个基于行对文本和内容匹配和搜索的命令。
    Grep命令语法和常见的option如下:

    用法: grep [选项]... PATTERN [FILE]...
    在每个 FILE 或是标准输入中查找 PATTERN。
    默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
    例如: grep -i 'hello world' menu.h main.c
    
    --color:对匹配的字符串着色打印
    -o:只显示被模式匹配到的内容
    -c:打印出匹配到字符串的行数
    -i:ignore case,不区分字符大小写
    -v:显示不能够被模式匹配到的行
    -E:使用扩展的正则表达式
    -n:打印出匹配字符串的在文件中的行号
    -R, -r:递归所有文件夹中的每一个文件
    -f:从 FILE 中取得 PATTERN
    -m: NUM 次匹配后停止
    -l:打印出含有匹配字符串的文件名,而不是匹配的内容
    -L:打印出没有包含匹配字符串的文件名,与 -l 选项相反
    -H:对每个匹配的字符串打印出字符串所在的文件名
    -h:不打印匹配字符串所在文件的文件名
    -w:强制 PATTERN 仅完全匹配字词
    -x:强制 PATTERN 仅完全匹配一行
    -A N:打印匹配字符串的同时打印匹配字符串所有行的前 N 行 -B N:打印匹配字符串的同时打印匹配字符串所在行的后 N 行 -C N:打印匹配字符串的同时打印匹配字符串所在行的前 N 行 和 后 N 行 --exclude=GLOB:跳过 GLOB 匹配的文件名进行搜索 --exclude-dir=DIR:在递归搜索时跳过 DIR 指定的文件夹

    Grep常见用法:
    (1)对当前目录下文件进行递归搜索并只显示文件名
    grep "redis" . -r -l

    (2)搜索指定字符串并显示行号
    cat /etc/passwd | grep -in "Mysql"

    (3)从指定文件中读取关键词进行搜索
    root@mckee-pc:~# cat test.txt 
    linux
    peida.cnblogs.com
    ubuntu
    ubuntu linux
    redhat
    Redhat
    linuxmint
    root@mckee-pc:~# cat test2.txt 
    linux
    Redhat
    root@mckee-pc:~# cat test.txt | grep -f test2.txt 
    linux
    ubuntu linux
    Redhat
    linuxmint

    (4)匹配以"at"结尾的内容行
    cat test.txt | grep -E "at$"

    (5)仅匹配单词,并显示匹配行数
    grep -w -c "usr" /etc/passw



沪ICP备19023445号-2号
友情链接