设置命令的默认参数和别名

  • 每次都要输入 ls -l ,烦不烦,我想用 ll 来表示 ls -l, 可以,只要在 ~/.bashrc 中加上 alias ll='ls -l' ,然后运行 source ~/.bashrc 来使配置立即生效即可。

正则表达式

  • 正则表达式就是有规则的字符串,字符串中有一些特殊字符来表示一定的规则,符合这个规则的字符串就能被匹配上。 如 ^the 表示每一行都以the开头的字符串; ^[^a-zA-Z] 表示所有不以英文字母开头的行。

元字符

  • 所谓元字符,就是这个字符是代表一类字符或这代表某种规则。
  • . 对,就是小数点,它代表除换行符外的任意一个字符,注意是一个字符。
  • \w 匹配字母数字下划线和汉子。注意也是匹配一个字符。
  • \s 匹配任意一个空白符。
  • \d 匹配任意一个数字。
  • \b 匹配单词的开头或结尾
  • ^ 匹配行首。
  • $ 匹配行尾。
  • [^x] 匹配任意不是x的字符。
  • [^xyz] 匹配任意不是x,y,z的字符。
  • 另外linux中大写字母一般表示小写字母的相反意义,上面的 w, s, d, b分别有对应的 W, S, D ,B 分别表示它们的相反意思。

数量及各种括号

  • * 放在一个字符的后面,表示前面的字符可以出现0次或多次。
  • ? 同上,但是表示前面的字符可以出现0次或1次。
  • + 同上,但是代表前面的字符可以出现1次或多次。
  • () 小括号,里面的看作一个整体,也就是看作一个"字符",*,? + 等修饰整个小括号里面的内容。
  • [] 中括号,不论里面有多少字符,它仅表示一个字符,如 [abc] 表示字符a 或 字符b或字符c。
  • {} 大括号,修饰前面的一个字符,表示该字符出现多少次,如 {2} 表示除2次,{3,} 表示出现3或3次以上,{3,9} 表示出现次数在3到9之间,包括3和9. 注意 { 和 } 前要加转义符。
  • | 或,如 abc \| cde ,匹配包含 abc 或 cde的行。注意 | 之前要加转义符。

grep

  • grep: global search regular expression (RE). 一种可使用正则进行文本搜索的工具,并把匹配的行打印出来。

    示例

  • 将 /etc/passwd 没有出现 root 的行取出来 : grep -v /etc/passwd -v 参数就表示相反的意思。
  • 在当前目录及子目录下递归搜索行内有 "important" 的文件 : grep -r 'important' *

  • 在当前目录及子目录下递归搜索行内有 "important" 的文件,但仅显示文件名 : grep -l -r 'important' *
  • 搜寻包含 test 或 tast 的行并显示行号 : grep -n 't[ae]st' test.txt
  • 搜索包含 aa 但是 aa 前面不能是 b 的行: grep '[^b]aa'
  • 搜索所有包含 hi并且hi前面不是小写字母的行: grep [^a-z]hi txt3
  • 搜索包含数字的行: grep -n '[0-9]' txt3
  • 搜索行首是The的行: grep -n '^The' txt3
  • 搜索行首第一个字母是小写的行: grep -n '^[a-z]' txt3
  • 搜索行首第一个字符不是字母的行: grep -n '^[^a-zA-Z]' txt3
  • 搜索行尾为小数点的行:grep -n '\.$' txt3 因为小数点是元字符,所以加了转移字符反斜杠。
  • 以 good. 结尾的行: grep -n 'good.$' txt3
  • 找出类似 g??d 的行: grep -n 'g..d' txt3
  • 找出 g后面跟2个或2个以上o的行: grep -n 'go\{2,\}' txt3 注意大括号要前要加转义符。

egrep 对grep的增强,支持扩展的表达式

  • 搜索所有包含 CN 或 US的行: egrep -n 'CN|US' txt3 | 就是扩展的元字符,
  • 如果使用grep时在扩展的元字符前加反斜杠,grep会自动使用egrep. 如上面的也可写成: grep -n 'CN\|US' txt3
  • 搜索所有包含1个或多个3的行:egrep -n 'o+' txt3
  • 搜索所有包含1个或多个go的行: egrep -n '(go)+' txt3

fgrep,查询速度比grep快,但不会识别正则表达式,只会原样搜索字符串。

  • 搜索包含 ** 的行: fgrep -n '**' txt3

Linux正则和grep命令的更多相关文章

  1. Linux中利用grep命令如何检索文件内容详解

    前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...

  2. Unix/Linux中的grep命令(转)

    本文转载自:如何使用Unix/Linux grep命令——磨刀不误砍柴工系列.该博文条理很清晰. grep简介 grep在一个或多个文件中查找与模式字符串(pattern)匹配的行,并将搜索的结果打印 ...

  3. 【Linux基础】grep命令

    1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 命令格式:grep [option] pattern file 2.常用参数与举例: -e :  使用P ...

  4. [svc]linux正则及grep常用手法

    正则测试 可以用sublime等工具快速的检测正则是否合适 china : 匹配此行中任意位置有china字符的行 ^china : 匹配此以china开关的行 china$ : 匹配以china结尾 ...

  5. Linux 中的 grep 命令

    一,grep命令有什么用 个人觉得grep命令就是一个对文本或输出进行匹配并控制输出的一个工具,看一下下面的参数,部分翻译了,有不对的地方,还请指正: grep --help 匹配模式选择: -E,  ...

  6. Linux find、grep命令详细用法

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:find命令 find命令的一般形式 ...

  7. windows下类似Linux下的grep命令

    今天要查看windws下代理服务器有哪些IP连接过来,但使用 netstat -na 后出现很多连接会话,不方便查看. 想到Linux下的grep非常方便,于是网络上搜寻,还是有类似的命令findst ...

  8. Linux中通过grep命令检索文件内容和指定内容前后几行

    原文链接: https://www.linuxidc.com/Linux/2017-11/148390.htm Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命 ...

  9. linux(centos8):用grep命令查找文件内容

    一,grep的用途: linux平台有最常用的三大文本处理工具:awk/sed/grep grep的功能:搜索指定文件的内容,按照指定的模式匹配,并输出匹配内容所在的行. 需要注意的地方:grep只支 ...

随机推荐

  1. ashx 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

    1.点击查看ashx在浏览器中显示的信息 2.自定义协议头 这样问题就搞定了.当然只是我遇到的一种.

  2. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

  3. 【oracle ocp 知识点二】

    1.数据库操作语言 DML在运行时下面的语句 添加一个新行到表 更新表现出一定的线 从表删除现有行 一个事务处理是由一系列的DML语句逻辑组成 A.insert 每次插入一行数据 字符和日期的须要单引 ...

  4. 为什么台湾人工智能可能抢输大陆?(XPU时代来临)

    到了 2020 年,每 3 支手机,就会有一支内建有 AI 芯片. 但目前浮出水面的 AI 芯片新创,几乎都是大陆公司. 为什么台湾这回选择缺席? 「我听说 CPU.GPU,没有听过 NPU? 」11 ...

  5. Android 混淆[学习笔记]

    Android 混淆 Gradle的简介: http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html ...

  6. 性能测试以及对redis

    Ignite性能测试以及对redis的对比   测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测 ...

  7. SQL Server 2017 正式发布:同时支持 Windows 和 Linux(现在看下来,当年那德拉的“云优先,移动优先”是有远见的,而且是有一系列的措施和产品相配合的,只是需要一点时间而已。真是佩服!!)

    微软在去年 3 月首次对外宣布了 Linux 版的 SQL Server,并于今年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会上,微软宣布 SQL Se ...

  8. latex 矩阵分块(block matrix)

    Lesson 12: Making Block Matrices in LATEX 按列分块: [AAb⋯An−1b] $$ \left[ \begin{array}{c|c|c|c} A & ...

  9. WPF 设置类库项目为启动项,设置窗体跟随。

    原文:WPF 设置类库项目为启动项,设置窗体跟随. 1.添加用于启动的类Program.cs,需要一个静态的Main函数入口. using System; using System.Windows; ...

  10. XF警告试图

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...