Linux中grep搜索用法

有测试文件test.txt一枚,内容如下

aaabbbccc
AAADDDEEE
abc
sdfjasldjf
bcd
okm
ABC

一、基本搜索常用
1、现在想把abc okm筛选出来

grep "abc\|okm" test.txt

结果:
abc
okm

2、把带a的行筛选出来,不区分大小写
grep -i "a" test.txt

结果:
aaabbbccc
AAADDDEEE
abc
sdfjasldjf
ABC

3、把带a的行筛选出来,只要小写的
grep "a" test.txt

结果:
aaabbbccc
abc
sdfjasldjf

4、把出现abc筛选出来,不区分大小写
grep -i "abc" test.txt

结果:
abc
sdfjabcasldjf
ABC

5、把出现abc整个单词的筛选出来
grep -w "abc" test.txt

结果:
abc

6、把出现abc整个单词筛选出来,不区分大小写
grep -wi "abc" test.txt

结果:
abc
ABC

二、
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip

三、正则匹配
格式
  grep [options]
      [options]主要参数:
      -c:只输出匹配行的计数。
  -I:不区分大 小写(只适用于单字符)。
  -h:查询多文件时不显示文件名。
  -l:查询多文件时只输出包含匹配字符的文件名。
  -n:显示匹配行及 行号。
  -s:不显示不存在或无匹配文本的错误信息。
  -v:显示不包含匹配文本的所有行。
  pattern正则表达式主要参数:
  \: 忽略正则表达式中特殊字符的原有含义。
  ^:匹配正则表达式的开始行。
  $: 匹配正则表达式的结束行。
  \<:从匹配正则表达 式的行开始。
  \>:到匹配正则表达式的行结束。
  [ ]:单个字符,如[A]即A符合要求 。
  [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
  。:所有的单个字符。
  * :有字符,长度可以为0。

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
  grep -l pattern files :只列出匹配的文件名,
  grep -L pattern files :列出不匹配的文件名,
  grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
  grep -C number pattern files :匹配的上下文分别显示[number]行,
  grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
  grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
  grep -n pattern files 即可显示行号信息
  grep -c pattern files 即可查找总行数

简单实例

grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。

grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。

grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

more test.txt | grep ‘[a-b]‘ 范围 ;如[A-Z]即A,B,C一直到Z都符合要求

结果:
aaabbbccc
abc
sdfjabcasldjf
bcd

grep ‘^a‘ test.txt 搜索以a开头的

结果:
aaabbbccc
abc

时间: 2024-11-01 05:00:31

Linux中grep搜索用法的相关文章

linux中grep的用法

1.grep    [内容]    /data/boy     只显示该文件中的内容,其他不显. grep一般常用参数: - i   :匹配时忽略大小写 - n  :匹配的内容开头显示行号 - v  : 匹配没有"搜索字符串"的内容,即过滤匹配内容 --color=auto   :     以特定颜色高亮显示匹配关键字 grep其他参数: - c  :  统计搜索到匹配字符串的次数 - o :  仅显示匹配的内容(常用于统计出现次数) - a  : 在二进制文件中以文本文件的方式搜索内

linux中grep和find的用法区别

linux中grep和find的用法区别 本文章详细的介绍了关于在linux中的grep和find两个命令的用法介绍,以及后面总结了它们两年用法区别哦. 先我们来介绍一下关于grep用法和一些小注意事项 使用过程中,使用最多的参数就是 -v ,但是用着并不爽. 比如说,我想查找一个单词“UserService”,但是像”*.svn” 这种文件就不用显示了,我该怎么做呢? 代码如下 复制代码 grep -r "UserService" ./ | grep -v "svn&quo

12个 Linux 中 grep 命令的超级用法实例

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu

linux中快捷键的用法

linux中快捷键的用法 1.1 常见快捷键 ctrl + a 把光标移动到行首 ctrl + e 把光标移动到行尾 ctrl + c 撤销当前的操作=cancel ctrl + d logout命令(当前行没有任何内容,退出当前用户),删除光标所在位置后面的一个符号,文本 ctrl + l(小写字母L)清除屏幕内容 ctrl +u 剪切光标所在位置到行首内容 ctrl +k 剪切光标所在位置到行尾内容 ctrl +y 粘贴 ctrl + r search搜索历史命令,继续搜索,查找历史命令 

Linux中 find 常见用法示例

Linux中find常见用法示例 #find path -option [ -print ] [ -exec -ok command ] {} \; #-print 将查找到的文件输出到标准输出 #-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格.其实在命令执行的时候"{}"将被find到的结果替换掉,因此将"{}"看成find到的文件来进行操作就很容易理解这个选项了. #-ok 和-exec相同,只不过在操作

Linux中grep、egrep正则表达式的使用

正则表达式的由来 正则表达式,英文写法Regular Expression,在编程语言中常被简写为regex.regexp等.它是用来描述.匹配一系列符合某个句法规则字符串的单个字符串. 正则表达式通常被用来检索.替换那些符合某个模式(Pattern)的文本. 1950年代,UNIX之父Ken Thompson将正则表达式引入编辑器QED,然后是编辑器ed,最终引入到grep中.从此,正则表达式被广泛地应用到了各种UNIX或类UNIX系统的工具之中,例如perl. 近些年来,主流操作系统.主流开

(转)linux 中特殊符号用法详解

linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/bin/bash   #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. # This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就

Linux中Grep常用的15个例子【转】

转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm 摘要:Grep命令主要用于从文件中查找指定的字符串.首先建一个demo_file:$catdemo_fileTHISLINEISTHE1STUPPERCASELINEINTHISFILE.thislineisthe1stlowercaselineinthisfile.ThisLineHasAllItsFirstCharacterO

Linux中rename命令用法学习 修改文件名

如何用命令修改文件名呢?在linux下可以用rename命令,当然还可以使用mv命令,这里分享下linux rename命令的用法. 有一部分人说linux下没有rename命令,建议大家用mv命令.对rename命令和mv命令在重命名文件方面做一个比较,大家根据个人喜欢选择使用吧. mv命令,在man mv中对于mv命令的介绍:mv -move(rename) files 可以看到mv命令确实有重命名的功能,但是实际应用中,它只能对单个文件重命名,命令如下:mv [path/]oldfilen