Linux 正则表达式详解

正则表达式(REGULAR):为处理大量的字符串而定义的一套规则和方法,为了处理大量字符串而生

常见命令参数

基础正则表达式

. :有且只有任意一个字符(包括空格)
* :重复前面任意0或者多个字符
.*:匹配任意字符==>所有,包括空格
\ :转义字符,让有意义的字符,显示原型  \$  --> $本身
^ :^d  以d开头的文件
$ :/$  以/结尾的文体
^$:表示空行    grep -vn "^$" h.txt -->不显示空行  -n 显示行号
  sed -r ‘s#(.*) fff#I am \1#g‘ h.txt  仅仅取每一行的()里面的东西
    r==reqular
[abc]   匹配字符集内的任意一个字符  [0-9]匹配0-9 [a-z] a-z
[^abc]  不匹配字符集内的任意字符,相当于取反
a\{n,m} 重复前一个字母,n到m次
     grep "0\{2\}" h.txt  重复0 2次
     ==>  egrep "0{2}" h.txt
     ==>  grep -E "0{2}" h.txt
\{n,\}   重复至少n次
\{,m\}   重复之多m次
    注意:egrep ,sed -r过滤一般特殊字符可以不转义
\w  : 只打印字母
    grep "\w" h.txt  --> a b c d e f g h i
\W  : 打印非字母
\b  :匹配单词的定界符
    grep "\bhello\b" h.txt
\d  : 表示数字

常用的命令展示

Linux grep/egrep命令详解

Linux sed命令详解

Linux awk命令详解

扩展正则表达

扩展正则表达式:多用于 egrep,grep -E
    1. + 重复一个或者一个以上的字符
         grep -Eo "go+d" h.txt --> god good
    2. ?重复0个或者一个  比 . 的范围大
         grep -Eo "g?d"   h.txt -->  gd, d
         grep -Eo "go?d"  h.txt -->  gd god
    3. | 查询多个符合的字符串
         grep -Eo "hello|world" --> hello  world
    4. ()找出"用户组"字符串
         egrep "g(la|oo)d" h.txt --> good glad

关于正则的一些小知识

1.Linux中适用于:grep,egrep,awk,sed,
2.区别通配符和正则  例如  ls *.log这里的 * 表示 所有的
3.Linux一般以行为单位
4.注意字符集 export LC_ALL=C
5.可以在 man grep/sed 过滤REGULAR 查看更多正则 

原文地址:https://www.cnblogs.com/ftl1012/p/regex.html

时间: 2024-11-05 23:27:13

Linux 正则表达式详解的相关文章

linux正则表达式详解

正则表达式由元字符和普通字符组成,有正则表达式和拓展正则表达式之分. 正则表达式元字符有以下几类:(grep) 字符匹配元字符: .(点号) :匹配任意一个字符: [ ]:匹配中括号内的其中一个字符: [^ ]:匹配不包括中括号内字符的其他字符: 次数匹配元字符:(匹配元字符前面的字符重复的次数) *:匹配前面的字符任意次(包含零次): \?:匹配前面的字符零次或1次(前面的字符可有可无): \+:匹配前面的字符至少一次: \{n\}:匹配前面的字符出现n次: \{n,\}:匹配前面的字符出现至

linux awk详解与应用

文章来自于本人个人博客: linux awk详解与应用 1.awk awk是一个强大的文本分析工具,它可以通过分析文本来生成一个数据报告.它的原理就是读取每行的输入,然后按照分隔符切分(默认是空格),再进行定制计算. awk '{print $1}' /etc/passwd   #打印出passwd文件的所有行的第一列 这是awk的基础语法,在awk中$n代表列数,即$1--第一列,$2---第二列....,但是$0代表整行 接下来我们按照指定的分隔符打印数据: awk -F ':' '{pri

grep正则表达式详解及练习

grep正则表达式详解及练习 一.在学习grep正则表达式前,先了解下linux著名的文本处理三剑客: (1)grep.egrep.fgrep 文本搜索工具. (2)sed     文本编辑工具,一种流编辑器,行编辑工具. (3)awk 强大的文本分析工具,文本格式化工具,文本报告生成器. 以上三大命令均支持正则表达式,本文以grep正则表达式为例展开学习. 1.什么是正则表达式? 正则表达式(Regular Expression):由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意

Linux 目录详解 树状目录结构图

1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/usr/bin类似. /boot/ 引导程序文件,例如:kernel.initrd:时常是一个单独的分区[6] /dev/ 必要设备, 例如:, /dev/null. /etc/ 特定主机,系统范围内的配置文件. 关于这个名称目前有争议.在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用

Linux信号详解

Linux信号详解 一 信号的种类 可靠信号与不可靠信号, 实时信号与非实时信号 可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号 不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于 SIGRTMIN的都是非可靠信号. 非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信号, 这些信 号都是可靠信号, 表现在信号支持排队, 不会丢失, 发多少次, 就可以收到多少次. 信号值 位于 [SIGRTM

Gentoo Linux安装详解--根据官方WiKi整理

1. 前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局域网上传很快) 准备磁盘: 分区: fdisk /dev/sda /dev/sda1 : /boot 100M(32-100M) 设启动笔记-a/dev/sda2 : / 20G/dev/sda3 : /home 20G/dev/sda5 : /swap 1G (内存< 512 MB,分区分配

PHP正则表达式详解(一)

前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时,发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程.于是一直想把他翻译过来. 本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版权归原作者所有,欢迎转载.但是为了尊重原作者和译者的劳动,请注明出处!谢谢! 1.什么是正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的模式.Regex代表Regular Express.本文将用

linux命令详解

一.cat主要有三大功能: 1.一次显示整个文件.$ cat filename2.从键盘创建一个文件.$ cat > filename (只能创建新文件,不能编辑已有文件)3.将几个文件合并为一个文件: $cat file1 file2 > file 参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v