`
caoruntao
  • 浏览: 482491 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

鸟哥的linux私房菜(基础篇--15、正规表示法)笔记2

阅读更多

[root@test root]# grep [-acinv] '搜寻字符串' filename
参数说明:
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

 

• 例题二、利用 [] 来搜寻集合字符

[root@test root]# grep -n 't[ae]st' regular_express.txt

[root@test root]# grep -n 'oo' regular_express.txt

[root@test root]# grep -n '[^g]oo' regular_express.txt

[root@test root]# grep -n '[^a-z]oo' regular_express.txt

[root@test root]# grep -n '[0-9]' regular_express.txt

 

• 例题三、行首与行尾字符 ^ $:

[root@test root]# grep -n '^the' regular_express.txt

[root@test root]# grep -n '^[a-z]' regular_express.txt

[root@test root]# grep -n '^[^a-zA-Z]' regular_express.txt

[root@test root]# grep -n '\.$' regular_express.txt

[root@test root]# grep -n '^$' regular_express.txt

[root@test root]# grep -v '^$' /etc/syslog.conf | grep -v '^#'

 

• 例题四、任意一个字符 . 与重复字符*

[root@test root]# grep -n 'g..d' regular_express.txt

[root@test root]# grep -n 'ooo*' regular_express.txt

[root@test root]# grep -n 'goo*g' regular_express.txt

[root@test root]# grep -n 'g.*g' regular_express.txt

[root@test root]# grep -n '[0-9][0-9]*' regular_express.txt

 

• 例题五、限定连续 RE 字符范围 {}

[root@test root]# grep -n 'o\{2\}' regular_express.txt

[root@test root]# grep -n 'go\{2,5\}g' regular_express.txt

[root@test root]# grep -n 'go\{2,\}g' regular_express.txt

 

      请特别留意的是,『正规表示法的特殊字符』与一般在指令列输入指令的『万用字符』并不相同, 例如,在万用字符当中,* 代表的是 0 ~ 无限多个字符的意思,但是在正规表示法当中, * 则是重复 0 到多个的前一个 RE 字符的意思~使用的意义并不相同,不要搞混了! (鸟哥我一开始摸正规表示法时就很容易
搞混!因为这里是新手最容易搞错的地方,特别小心啊!) 举例来说,不支持正规表示法的 ls 这个工具中,若我们使用『ls -l * 』代表的是任意档名的档案,而『ls -l a* 』代表的是以 a 为开头的任何档名的档案, 但在正规表示法中,我们要找到含有以 a 为开头的档案,则必须要这样:(需搭配支持正规表示法的工具)
ls | grep -n '^a.*'
另外,例如万用字符的反向选择,为 [!range] ,至于正规表示法则是 [^range] 。这样是否了解正规表示法与万用字符的差异啦??

 

延伸正规表示法

分享到:
评论

相关推荐

    鸟哥Linux私房菜-基础篇-笔记

    ### 鸟哥Linux私房菜-基础篇-笔记知识点详解 #### 一、Linux与硬件的搭配 在Linux系统中,硬件设备是以文件的形式存在的,通常这些文件都被保存在`/dev`目录下。这样的设计使得Linux能够更加灵活地管理和访问硬件...

    鸟哥的 Linux 私房菜第12章-正规表示法与文件格式化处理1

    **基础正规表示法** 正规表示法包含一系列基础和扩展的特殊字符,如点号`.`代表任意单个字符,星号`*`代表前一个字符重复零次或多次,反斜杠`\`用于转义特殊字符,方括号`[]`用于定义字符集等。学习正规表示法时,...

    鸟哥的私房菜Linux学习笔记

    ### 鸟哥的私房菜Linux学习笔记关键知识点解析 #### 第一章 计算机概论 **1. CPU的种类** - **精简指令集(RISC)** - 特点:指令数量少,每条指令执行周期简单且快速。 - 例子:ARM架构。 - **复杂指令集...

    鸟哥的私房菜全集

    Linux是一种操作系统,由芬兰学生林纳斯·托瓦兹(Linus Torvalds)于1991年首次编写,其核心基于Unix操作系统的设计思想。它是一种自由和开放源代码的软件,任何人都可以自由使用、复制、修改,并分发其源代码。...

    鸟哥的 Linux 私房菜基础文档pdf

    《鸟哥的 Linux 私房菜》是一本深受 Linux 学习者喜爱的教程,它以其通俗易懂的语言和详尽的实例解析了 Linux 的基础知识。这本书覆盖了从 Linux 操作系统安装、基本命令行操作到系统管理的方方面面,是初学者入门 ...

    鸟哥的_Linux_私房菜第10章-vim_程序编辑器

    ### 鸟哥的 Linux 私房菜:第10章—vim程序编辑器 #### vi与vim:为何要学习vim? 在 Linux 系统中,掌握文本编辑器的使用至关重要,尤其是对于系统管理员而言。在众多文本编辑器中,vi(以及其增强版本 vim)因其...

    Linux正规表示法介绍

    ### Linux正规表示法详解 #### 1. 原理 正规表示法,或称正则表达式(Regular Expression),是一种强大的文字模式匹配工具。它允许用户通过一系列特殊字符组合来定义复杂的搜索模式,用于文本搜索、替换或删除...

    Linux 基础 79-用户管理-10-chmod的数字表示法介绍.flv

    Linux 基础 79-用户管理-10-chmod的数字表示法介绍.flv

    arm-linux-gcc-4.5.1-v6-vfp-20101103

    标题“arm-linux-gcc-4.5.1-v6-vfp-20101103”指的是一款特定版本的ARM交叉编译工具链,由友善之臂公司提供。这个工具链主要用于将源代码编译为适用于ARM架构处理器,特别是ARM11内核的二进制代码。日期“20101103”...

    linux-arm-gcc-4.9.2交叉编译工具

    Linux ARM GCC 4.9.2交叉编译工具是一个针对ARM架构在Linux系统上进行编译的工具链,主要用于在非ARM平台(如x86)上构建适用于ARM设备的应用程序或操作系统。这个版本的GCC(GNU Compiler Collection)是4.9.2,是...

    linux笔记笔记笔记笔记

    本文将深入探讨“Linux工作笔记”中涉及的一些关键知识点,包括select多路复用、Makefile文件、Shell脚本、DDNS(动态域名解析)、文件读写、编译内核、鸟哥私房菜Linux教程、转义字符、版本控制工具SVN以及Makefile...

    linux学习笔记v1.0 - 基础命令指令.docx

    ### Linux基础命令学习笔记 #### 1.2 系统命令 在Linux系统中,熟练掌握各种命令是非常重要的。下面将详细介绍几个常用的系统命令。 ##### 1.2.1 命令tar `tar`命令是Linux系统中最常用的数据打包备份工具之一,...

    Linux私房笔记.txt

    ### Linux私房笔记知识点概述 #### 一、Linux 命令详解 ##### 1. `ls` 命令 - **语法**: `ls [选项] [文件或目录]` - **作用**: 列出指定目录下的文件及子目录列表。 - **常用选项**: - `-a`: 显示所有文件及目录...

    深度学习word2vec笔记之基础篇

    ### 深度学习word2vec笔记之基础篇 #### 一、前言 随着深度学习技术的迅猛发展,该领域已经成为计算机科学中备受瞩目的焦点。各大科技公司纷纷投身于深度学习的研究与应用,而Google作为业界领军者之一,在这一...

    Linux基础知识整理

    - **学习途径**:推荐参考书籍《鸟哥的Linux私房菜——基础学习篇》,该书内容丰富,覆盖了Linux的基础概念到实际操作等多个方面。 #### 二、Linux主机规划 - **规划要素**:包括硬件选择、软件配置、安全设置等,...

    ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz

    glibc 是 Linux 上最常用的 C 库,提供了许多操作系统接口,是大部分 Linux 应用程序的基础。 **x86_64** 或者 AMD64 是指64位的处理器架构,这种架构的处理器能够处理更大范围的数据,对于处理大量数据或者运行...

    最新版linux jdk-8u261-linux-x64.tar.gz

    【标题】"最新版Linux JDK 8u261 Linux-x64.tar.gz"是一款针对64位Linux操作系统的Java Development Kit(JDK)的更新版本。这个软件包以`.tar.gz`格式提供,这是一种在Linux和Unix系统中常见的归档和压缩方式,通过...

    qt-creator-linux-x86_64-opensource-2.6.1

    5. **qt-creator-linux-x86_64-opensource-2.6.1.bin**:这个文件是一个二进制可执行文件,通常在Linux系统中,.bin扩展名表示这是一个可以直接运行的程序,不需要通过编译步骤。用户通常需要通过管理员权限来执行...

    mysql for linux , mysql-standard-5.0.27-linux-i686.tar.gz

    “mysql-standard-5.0.27-linux-i686”是这个压缩包的名称,其中“standard”表示这是标准版的MySQL,包含了基本的数据库功能,适合大多数应用需求。“5.0.27”是版本号,表明这是5.0系列的第27个维护版本。“linux-...

Global site tag (gtag.js) - Google Analytics