Linux学习笔记:Shell基础正则表达式

Shell中经常用到正则表达式的命令包括grep、sed、awk

用于测试的文件内容

[[email protected] ~]# vi testfile

Current Network Status

Last Updated: Mon Feb 15 10:55:06 CST 2016

Updated every 90 seconds

Nagios Core 4.1.1 - www.nagios.org

Logged in as admin

I like google

It‘s Google, not GOOOOOGLE;

基础正则表达式里的一些特殊符号

1)^word    代表以单词word开头的行

[[email protected] ~]# grep ^I testfile

I like google

It‘s Google, not GOOOOOGLE;

2)word$    代表以单词word结尾的行

[[email protected] ~]# grep s$ testfile

Current Network Status

Updated every 90 seconds

3).      点号代表一个任意字符(包括空格)

[[email protected] ~]# grep t.G testfile

It‘s Google, not GOOOOOGLE;

4)\      斜杠代表转义字符,把所有含有特殊含义的符号都转回它们本身的字符(包括\自身)

[[email protected] ~]# grep "\." testfile

Nagios Core 4.1.1 - www.nagios.org

5)*       代表前一个字符出现任意次数

[[email protected] ~]# grep "o*g" testfile

Nagios Core 4.1.1 - www.nagios.org

Logged in as admin

I like google

It‘s Google, not GOOOOOGLE;

这个例子中,第一行仅命中g,因为o可以出现任意次数,包括0次

6).*        匹配所有字符,包括空行。

[[email protected] ~]# grep ".*" testfile

Current Network Status

Last Updated: Mon Feb 15 10:55:06 CST 2016

Updated every 90 seconds

Nagios Core 4.1.1 - www.nagios.org

Logged in as admin

I like google

It‘s Google, not GOOOOOGLE;

7)[]        匹配中括号里所有字符的任意一个

[[email protected] ~]# grep "[NO]" testfile

Current Network Status

Nagios Core 4.1.1 - www.nagios.org

It‘s Google, not GOOOOOGLE;

8)[^CHARS]    CHARS可以是多个字母或者范围,不匹配范围内的任意字符。注意,这是字母,不是单词

[[email protected] ~]# grep "[^G]oo" testfile

I like google

9){n,m}        限制前一个字符出现的次数。使用时需要加\转义

[[email protected] ~]# grep "o\{2,3\}" testfile   #当仅使用时,尽管限制了2到3次,但所有都出来了

I like gooogle

not gooooooogle

It‘s Google, not GOOOOOGLE;

[[email protected] ~]# grep "go\{2,3\}gle" testfile #当用其他字母夹着来用,则能实现重复出现的次数

I like gooogle

还有{n,}和{n},前者代表至少出现n次,后者代表准确出现的次数

时间: 2024-08-24 16:15:12

Linux学习笔记:Shell基础正则表达式的相关文章

Linux学习笔记——Shell基础(八)

+++++++++++++++++++++++++ +++++Shell基础+++++++++++++++++++++++++++++++ 1. Shell概述 Shell定义: Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至编写一些程序. Shell还是一个功能相当强大的编程语言,易编写.调试.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令. Shell分类: Bo

Linux学习之Shell基础

一.Shell概述 1.Shell概述: Shell:壳,Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程序.类似于翻译,相当windows的操作界面 Shell同时还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux命令. 2.Shell的分类: Bourne Shell:从1979起Unix就开始使用的Bourne

Linux学习笔记——Shell编程(九)

+++++++++++++++++++++++++ +++++Shell编程+++++++++++++++++++++++++++++++ 1. 基础正则表达式 正则表达式与通配符: 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配,grep awk sed等命令可以支持正则表达式:通配符是用来匹配符合条件的文件名,通配符是完全匹配,ls find cp这些命令不支持正则表达式,所以只能用shell自己的通配符来匹配. 基础正则表达式: 2. 字符截取命令 字段提取命令:cut [选项

linux 学习10 shell 基础

10.1 Shell概述 1.Shell是什么 ?Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程序. ?Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令. 2.Shell的分类 ?Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文

linux学习之shell基础篇

1.shell简介 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层.当从shell或其他程序向Linux传递命令时,内核会做出相应的反应. 2.shell的工作原理 系统初启后,核心为每个终端用户建立一个进程去执行Shell解释程序.它的执行过程基本上按如下步骤: (1)读取用户由键盘输入的命令行. (2)分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve( )内部处理所要求的形        式. (3)

linux学习笔记:shell脚本编程相关(上)

前言 unix/linux操作系统下的shell,是一种壳,其目的是提供一个用户与计算机相互交互的命令接口,通过输入各种命令,达到操作的目的. 与此同时,shell支持控制流程,进而可以组合出各种各样的应用实例. shell脚本的格式 首行shebang机制: bash脚本,首行添加#!/bin/bash [options] csh脚本,首行添加#!/bin/csh [options] ksh脚本,首行添加#!/bin/ksh [options] -- 描述脚本的注释部分: 包括Author,

linux 学习随笔-shell基础知识

1:用户的shell历史命令保存在home/username/.bash_history中 #!!  执行用户的上一条命令 #!pw  执行命令历史中最近一次以pw开头的命令 2:'*'来匹配零或多个字符 '?’匹配一个字符 #ls -d Day* 列出Day开头,后面匹配所有字符的目录 #ls -d Day? 列出Day开头,后面匹配一个字符的目录 3:>> 在文件中追加重定向 > 在文件中重定向 4:| 管道符 #cat /etc/passwd|wc -l cat /etc/pass

Linux学习笔记之——基础命令学习

1.find 按照名字查找:find / -name file_name 2.zip压缩 1) 我想把一个文件repartition.txt和一个目录invader压缩成为amateur.zip: # zip -r amateur.zip repartition.txt invader 2)我下载了一个aptly.zip文件,想解压缩: # unzip aptly.zip 3)我当前目录下有abc1.zip,abc2.zip和abc3.zip,我想一起解压缩它们: # unzip abc\?.z

<LINUX >bash shell 入门 --linux学习笔记

首先说下我个人对于shell的理解,我觉得shell是一种通过各种控制语句将linux命令进行集合实现批处理的一种脚本语言. shell编程入门其实很简单,语法知识并不多,但是高级shell编程就很难,因为shell是用户和linux之间的桥梁,要编写高质量的shell脚本,就需要用户对linux有很全面的认识. 这里我们只分析shell脚本的语法知识,如想透彻的学习linux还需多努力. shell结构       1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建she

嵌入式Linux学习笔记之LED驱动

最近在学习嵌入式Linux驱动开发,大致了解了驱动的基本开发流程,本文主要针对字符设备驱动开发做一个简要介绍,也当作是对这几天工作的一个小小总结. 计算机系统是由软硬件相互协调共同完成工作的,作为专用计算机系统的嵌入式系统也不例外,既要有CPU.SDRAM.FLASH.IO等硬件,同时也少不了操作系统和应用软件等软件的支持,而作为应用程序与硬件的桥梁--驱动程序,是整个嵌入式系统开发过程中的关键环节.驱动开发涉及底层,而了解底层作用机制对于整个系统的开发意义重大. Linux内核中有60%以上是