grep 命令 --在文件中搜索文本工具

摘要:
--颜色:以颜色突出显示匹配的内容。
grep命令   

  

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

Linux grep 命令用于查找文件里符合条件的字符串

语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

选项

常用选项:

  -A  n:显示匹配到的字符串所在的行及其后n行,after

  -B  n:显示匹配到的字符串所在的行及其前n行,before

  -C  n:显示匹配到的字符串所在的行及其前后各n行,context

  -E :开启扩展(Extend)的正则表达式。

  -i :忽略大小写(ignore case)。

  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

  -n :显示行号

  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker

  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。

  -o :只显示被模式匹配到的字符串。

  --color :将匹配到的内容以颜色高亮显示。

grep 命令常见用法
  • 在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name
grep "match_pattern" file_name

eg:

grep then *.sh
c.sh:then 
my.sh:then
my.sh:cho 'equality' fi printf 'wwww' a=10 if [[ $a = 10 ]] then
  • 在多个文件中查找
grep math_pattern file_1 file_2  ...
  • 输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name
  • 除了显示符合范本样式的那一行之外,并显示该行之后的内容
(base) [root@localhost Tana]# grep -A3  then my.sh
then
cho 'equality' fi printf 'wwww' a=10 if [[ $a = 10 ]] then
echo 'hello'
else
echo 'nnnn'
  • 除了显示符合范本样式的那一列之外,并显示该列之前后的内容
(base) [root@localhost Tana]# grep -C3  then my.sh
#!/bin/bash a=5 b=5
if (( a=b ))
then
cho 'equality' fi printf 'wwww' a=10 if [[ $a = 10 ]] then
echo 'hello'
else
echo 'nnnn'
  • 标记匹配颜色 --color=auto 选项:
grep "match_pattern" file_name --color=auto
  • 使用正则表达式 -E 选项:
grep -E "[1-9]+"egrep "[1-9]+"
  • 只输出文件中匹配到的部分 -o 选项
(base) [root@localhost Tana]# nvdimm_regread 0 0 0x60  |grep -o -E " [0-9]x[A-Z0-9]*"
 0xA5
(base) [root@localhost Tana]# nvdimm_regread 0 0 0x60
dimm#0, page:#0:reg#60 = 0xA5
  • 输出包含匹配字符串的行数 -n 选项:
    (base) [root@localhost Tana]# grep -n then   my.sh
    3:then
    4:cho 'equality' fi printf 'wwww' a=10 if [[ $a = 10 ]] then
    grep 递归搜索文件
  • 在多级目录中对文本进行递归搜索:
    (base) [root@localhost Tana]# grep  -r -n  then .
    ./c.sh:5:then 
    ./my.sh:3:then
    ./my.sh:4:cho 'equality' fi printf 'wwww' a=10 if [[ $a = 10 ]] then
    
    #. 表示当前目录

    模式匹配部分参考文档

  • grep 模式匹配部分

免责声明:文章转载自《grep 命令 --在文件中搜索文本工具》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS安装PyQT5html5对密码加密下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

审计基础-PHP命令执行

1. 命令执行 1.1 程序执行函数 程序执行函数 这些函数和 执行运算符 是紧密关联的。 因此,当运行在 安全模式 时,你必须考虑 safe_mode_exec_dir指示 exec PHP 457 exec — 执行一个外部程序 exec ( string $command ) : string 返回命令执行结果的最后一行内容,实际不echo出来的话回...

软件调试工具——GDB

1、GDB调试器概述   GDB是GNU开源组织发布的一个强大的程序调试工具,具有查看程序运行状态、设置断点、查看表达式、显示变量等众多功能,是程序员进行Linux编程必须要掌握的一种调试技术。   GDB调试工具的优势主要包含以下5个方面:   (1)用户可以在程序运行过程中查看运行的状态;   (2)用户可以在程序中任何需要的地方设置断点,并暂停...

c语言运算符

1.运算符概述 运算符是一种编译器执行特定的数学或逻辑操作的符号。C语言提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 其他运算符 2.算术运算符 算术运算符分为单目运算符和双目运算符,单目运算符表示只需要一个操作数,双目运算符需要两个操作数。 2.1 双目算术运算符 1)+ :加法,把两个操作数相加...

vim compare 比对

1. 使用vim的比较模式打开两个文件:vim -d file1 file2vimdiff file1 file2 2. 如果已经打开了文件file1,再打开另一个文件file2进行比较::vert diffsplit file2如果没有用vert命令,diffsplit则会分上下两个窗口。 3. 如果已经用split方式打开了两个文件file1,file...

C 面向对象编程 --- 一模块的串口协议解析

// 任务目的// 解析串口收到的54个字节。这54个字节包含了8个车道的5大信息以及校验信息。// 实现了查询每条车道包含了哪些信息。 #include <stdio.h> #include <malloc.h> #include <assert.h> typedef unsigned char mybool;...

将一个数的字节顺序逆置

将一个数的字节顺序逆置 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int main() 5 { 6 int ival;//逆置的数 7 int res;//存储逆置后的数 8 9 while(fflush(stdin),printf("En...