shell(2):正则表达式】的更多相关文章

本篇主要写一些shell脚本正则表达式的使用基础. 概述 正则表达式分为基础正则表达式(Regular Expression)与扩展正则表达式(Extended Regular Expression). 它不是一个工具程序,而是一个字符串处理的标准依据,是使用单个字符串搜索.匹配一系列符合某个语法规则的字符串. 它由普通字符(a~z)以及特殊字符(元字符)组成. linux 文本处理工具 文本处理工具 基础正则表达式 扩展正则表达式 vi编辑器 支持 / grep 支持 / egrep 支持 支…
shell的正则表达式规则 https://www.jb51.net/tools/shell_regex.html 常规字符 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.例如,“n”匹配字符“n”.“\n”匹配一个换行符.序列“\\”匹配“\”而“\(”则匹配“(”. ^ 匹配输入字符串的开始位置. $ 匹配输入字符串的结束位置. {n} n是一个非负整数.匹配确定的n次.例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o. {n,} n是一个非…
参考:http://www.cnblogs.com/erichhuang/archive/2012/03/13/2394119.html 简介: 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等 此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持.由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广…
如果在shell脚本中处理数据文件,那么我们就必须熟悉正则表达式.正则表达式是用来过滤数据流中文本的模式模板,模式由标准文本字符和特殊字符组成.正则表达式用特殊字符来匹配一系列一个或多个字符,要想掌握正则表达式,必须深刻认识每个特殊字符: .*^${}+?|()下面分别解释一下: 脱字符 ^ 定义从数据流中文本行的行首开始的字符: 美元符 $ 指明数据必须以该文本模式结尾: 点字符 . 用来匹配任意单字符,除了换行符: 字符组 [Yy] 用来匹配字符组中某个字符(比如y,但不清楚其大小写)出现在…
1.什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 生活中处处都是正则: 比如我们描述:4条腿 你可能会想到的是四条腿的动物或者桌子,椅子等 继续描述:4条腿,活的 就只剩下四条腿的动物这一类了 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep.sed.awk,它们三者均可以解释正则. 2.grep 参数 -n 显示行号 -o…
1.什么是shell? shell代表两个层面的意思,一个是命令解释器,比如:BASH,另外一个是shell脚本(利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的.) 2.通配符是被shell解释的,由shell 负责预先先解析后,将处理结果传给命令行.  通配符------>用shell来解释的 3.元字符是被shell解释的. 4.正则表达式是由命令解释的.   g…
正则表达式处理文件的内容,shell处理文件本身 grep *匹配0到n个 .(点儿)能匹配任意字符----8.8.8.8用于测试外网是否通畅 egrep…
BRE和ERE的区别 基本正则表达式(BRE)和扩展正则表达式(ERE)的区别仅仅是元字符(meta charactor)的区别而已. BRE: 只有^$.*[]是元字符 ERE: ^$.[]*+(){}?|都是元字符 BRE和ERE的元字符 参考:Shell正则表达式 示例 $echo "abcdefg" | grep 'a.+g' #不匹配任何字符串 $echo "abcdefg" | grep 'a.\+g' #匹配整个字符串 $echo "abcd…
正则表达式与通配符(正则表达式匹配字符串,是包含匹配:通配符匹配文件名,是完全匹配.): 基础正则表达式: 正则表达式示例:…
A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子坦荡荡,小人长戚戚" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) 一.正则表达式基础 1.什么是正则表达式 正则表达式(Regular Expression, RE)是对字符串操作的一种逻辑公式,就是用一些事先定义好的特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串…
正则表达式与通配符 正则 -- 匹配字符串 -- 包含匹配     grep.awk.sed等 通配符 -- 匹配文件名 -- 完全匹配  ls.find.cp等 基础正则表达式…
"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+\.[0-9]*[1-9][0-…
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 后向引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 "\" 而 "\(" 则匹配 "(". ^ 匹配…
当一个文件或命令输出中抽取或过滤文本时,可以使用正则表达式(RE),正则表达式是一些特殊或很不特殊的字符串模式的集合. 在Linux中grep.awk.sed均可解释正则 1.基本元字符集及其定义 ^ 只匹配行首 $ 只匹配行尾 * 一个单字符后紧跟*,匹配0个或多个此单字符 [] 匹配[]内字符.可以使一个单字符,也可以是字符序列.可以使用-代替[]内字符序列范围,如用[1-3]代替[123] \ 用来屏蔽一个元字符的特殊含义.\可以失去它应有的意义 . 匹配任意单字符 pattern\{\n…
作业一:整理正则表达式博客 已整理完.作业二:grep作业(正则表达式及字符处理) 目标文件/etc/passwd,使用grep命令或egrep 1.显示出所有含有root的行:[root@bogon ~]# grep -l 'root' /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin 2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容: grep '…
正则表达式(regular expression ,REGEXP): 元字符: .:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意字符 字符集合:使用[字符集合] [:space:] 空白字符 [:punct:] 标点符号 [:lower:] 小写字母 [:upper:] 大写字母 [:alpha:] 大小写字母 [:digit:] 数字 [:alnum:] 数字和大小写字母   匹配次数(贪婪模式,尽可能长的去匹配): *:匹配其前面字符任意次 .*:匹配任…
转载自: http://www.cnblogs.com/linhaifeng/p/6596660.html 和 http://www.blogjava.net/jasmine214--love/archive/2011/10/12/361040.html ^ 行首$ 行尾. 除了换行符以外的任意单个字符* 前导字符的零个或多个.* 所有字符[] 字符组内的任一字符[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)^[^] 非字符组内的字符开头的行[a-z] 小写字母[A-Z] 大写字母…
什么是正则表达式 正则表达式分为基础正则和扩展正则,都是为了匹配符合预期要求的字符串 正则表达式与通配符的区别 只需要记住,对文件内容或是展示文本的操作都是正则,而对目录或文件名的操作则都是通配符(例如find指令) 基础正则和扩展正则 扩展正则包含基础正则,而且多出了  +    ?   |    ()四个指令(注意这里的 | 要和管道符分开) 扩展正则不需要像基础正则一样对某些符号进行转义(一般是用 反斜杠  \  来进行) 基础正则表达式符号 符号 描述 实例 . 代表单个字符(必须存在)…
正则表达式概述 正则表达式是一种定义的规则,Linux工具可以用它来过滤文本. 基础正则表达式 纯文本 [root@node1 ~]# echo "this is a cat" | sed -n '/cat/p' this is a cat [root@node1 ~]# echo "this is a cat" | gawk '/cat/{print $0}' this is a cat 正则表达式的匹配非常挑剔,尤其需要记住,正则表达式区分大小写. 特殊字符 正…
在使用sed和gawk时如果能够熟练的使用正则表达式,可以准确的过滤到自己需要的信息 Linux中,有两种流行的正则表达式引擎: POSIX基础正则表达式,BRE引擎 POSIX扩展正则表达式,ERE引擎 一.BRE模式 1.1 纯文本 基本上没什么可写的,区分大小写,多个空格也可以匹配. 1.2 特殊字符 正则表达式识别的特殊字符包括这些,如果需要使用特殊字符,需要转义符(\). .*[]^${}\+?|() 1.3 锚字符 或字符(^)锁定在行首 美元符($)锁定在行尾 两个组合(^$)可以…
以上例子的目的在于,正则表达式只能用grep -n 命令中才有作用.在ls中,他的意义是不同的,例如*符号. grep命令的解析 其中,几个特殊的正则表达式: [[:alpha:]] 代表 字母[[:alnum:]] 代表 字母与数字字符 [:alnum:]'Alphanumeric characters: `[:alpha:]' and `[:digit:]'. `[:alpha:]'Alphabetic characters: `[:lower:]' and `[:upper:]'. `[:…
基本正则表达式 星号* 匹配它前面的字符串或正则表达式任意次(包括0次).比如,“1122*” 将匹配11+1个或多个2,其可能匹配的字符串将是112.1122.112222.11223343等 句点. 匹配除换行符之外的任意一个字符.比如,“112.”将匹配112+至少一个字符,其可能匹配的字符串是1121.122.112abc等,但不匹配112. 插入符号^ 匹配一行的开始,但有时依赖于上下文环境,可能表示否定正则表达式中一个字符串的意思.比如,"^abc”将只匹配行首的abc字符串. 美元…
1什么是正则表达式 1.1定义 正则表达式是你所定义的模式模板,Linux工具可以用它来过滤文本.Linux 工具(比如sed编辑器或gawk程序)能够在处理数据时使用正则表达式对数据进行模式匹配. 1.2正则表达式的类型 正则表达式是通过正则表达式引擎实现的.正则表达式引擎是一套底层软件,负责解释正则表达式模式并使用这些模式进行文本匹配. 在Linux中,有两种流行的正则表达式引擎: POSIX基础正则表达式(basic regular expression,BRE)引擎 POSIX扩展正则表…
一.正则表达式介绍 正则表达式是一种文本模式匹配,包括普通字符(a...z)和特殊字符(元字符). 它是一种字符串匹配模式,可以用来检查一个字符串是否含有某种子串.将匹配的子串替换或者从某个字符串中取出某个条件的子串 shell支持正则表达式,但是不是所有的命令都支持正则,常见的命令中只有grep.sed.awk命令支持正则表达式 二.特殊字符 1.定位符使用-模糊匹配与精准匹配: 同时锚定开头和结尾,做精确匹配:单一锚定开发和结尾,做模糊匹配. 定位符 说明 ^ 锚定开头^a以a开发,默认锚定…
目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)*练习 (3).练习 (4)^和$练习 (5)[]练习 (6)[^]练习 (7)\{n\}练习 (8)\{n,\}练习 (9)\{n,m\}练习 4.总结 1.正则表达式说明 正则表达式和通配符的区别 正则表达式用来在文件中匹配符合条件的字符串. 通配符用来匹配符合条件的文件名. 在Shell中,使用在文件当中搜索字符串的命令,如grep,awk,sed等命令(文本操作三剑客),可以支持正则表达式. 而在系统当中搜索文…
目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Shell的正则表达式中还可以支持一些元字符,比如+.?.|.(). 其实Linux系统是支持这些字符的,只是grep命令默认不支持而已(grep命令无法识别扩展正则表达式). 如果要想支持这些字符,必须使用egrep命令或grep -E选项,才能识别扩展正则表达式的字符,所以我们又把这些字符称作扩展字…
一.小括号,圆括号() 1.单小括号 ()    ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格.    ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh.     ③用于初始化数组.如:array=(a b c d)  …
.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用. 括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次, 得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b c d) .双小括号 (( )) ①整数扩展.这种扩展计…
一.正则表达式: 元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符. 正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串. 正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合.实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据.                         基本的正则表达式元字符集合及其意义 符号 意义 * 0个或多个在*字符之前的那个普通字符 .…
一.小括号() 单小括号 命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. 命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. 用于初始化数组.如:array=(a b c d) 双小括号(()) 整数扩展.这种扩展计算是整数型…