shell:正则表达1

1.linux通配符

*:代表所有字符(0到多个)
?:代表一个字符
;:连续不同命令之间的分隔符
#:配置文件注释
|:管道
~:当前用户的家目录
-:上一次所在的路径
$:变量前面需要加的符号
/:路径分隔符
>或1>:重定向,会覆盖原有数据
>>:追加重定向
<:输入重定向(xargs、tr)
<<:追加输入重定向(cat)
‘:单引号,不具有命令置换功能,输出时所见即所得
":双引号,具有变量置换功能,解析变量后才输出。不加引号相当于双引号
`:反引号,两个``中间为命令,会先执行,等价于$()
{}:命令区块组合或内容序列,echo stu{1..5};cp a.txt {,.bak}
# mkdir -p /data/{3306,3307}/data
!:逻辑运算中的非(not)
&&:and并且,前一个命令执行成功时,才执行后一个命令
||:or或,前一个命令执行失败时,执行后一个命令
.:当前目录
..:上一级目录

2.正则表达式:为处理大量字符串而定义的一套规则和方法

第一波:
# grep "^m" oldboy.txt 匹配以m开头的字符,因为是贪婪模式,所以匹配到整行
# grep "m$" oldboy.txt 匹配以m结尾的字符
# grep -n "^$" oldboy.txt  匹配空行并显示行号
# grep -vn "^$" oldboy.txt  排除空行
.:代表且只能代表任意一个字符
\:转义,让有特殊意义的字符,只代表字符本身
*:重复0个或多个前面的一个字符,例如:my*,0个y,会匹配有m字符的字符串;1个y,my;多个y,myyy
.*:匹配任意字符
# grep -no "m" oldboy.txt  只显示匹配到的m字符

3.基础正则第二波:

# grep -no [abc] oldboy.txt  匹配集合内的任意一个字符
# grep -no [^abc] oldboy.txt  不匹配集合内的字符
a\{n,m\}  前一个字符,重复n到m次
a\{n,\}  重复至少n次,
a\{n\}   重复n次
a\{,m\}  最多重复m次
注意:grep -E 可以不用加\,egrep、sed -r也可以不用加\
-i、-v为常用参数、-o(用于统计出现在文中的次数)

原文地址:https://www.cnblogs.com/fawaikuangtu123/p/9780304.html

时间: 2024-10-28 19:10:03

shell:正则表达1的相关文章

shell正则表达二

shell正则表达 二部分 一.printf命令: 1. 格式化输出.(print  format) 2. 命令格式: printf'打印格式'实际内容 1. 打印格式: 1) \a(警告声音输出) 1) \b(退格键) 1) \n(输出新的一行) 1) \r(帧处于行的开始,即enter键) \t(水平的table键) 1) \v(垂直的table键) 1) \xNN(x为ASCII码十六进制表示:NN为俩位数数字:可转换数字成为字符) 1) %ns(n为数字:s代表string,即多少个字符

shell 正则表达三剑客--awk

awk命令 awk和sed一样是流式编辑器,它也是针对文档中的行来操作的,一行一行的去执行.awk比sed更加强大,它能做到sed能做到的.awk工具其实是很复杂的,有专门的书籍来介绍它的使用. 1 awk命令形式 awk [-F|-f|-v] 'BEGIN{} //{command1; command2} END{}' file [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value '  '         引用代码块 BEGIN       初始化

正则表达示

这里对正则表达示进行一定程度的总结.为避免太过纠结,这里避开一些 鸡肋 的正则用法. 更多文档参考官方文档 http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html 字符 x 字符 x \\ 反斜线字符 \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义

对正则表达这个东西还需要多练习啊

正则表达,如果不配合PHP语言来实现其他功能的话,充其量也就是一行字符串.它最基本的功能就是判断,用来判断某些字符是不是存在于一个已被定义的变量中. 所以,可以用它判断的这个特性来作为function的条件. 另外,正则表达式也具有增删改查的功能,但它最主要的功能就是"查". 最后:从某些方面来说,数据库也算是语言吧.

Java正则表达中Greedy Reluctant Possessive 的区别

上一篇文章<编程思想之正则表达式 >中讲了正则表达式的原理.使用方法和常见的正则表达式总结,本文将进一步探讨Java正则表达中Greedy.Reluctant.Possessive三种策略的区别. 从Java的官方文档http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html中我们可以看到,正则表达式表示数量词的符号有三套,分别是Greedy(贪婪的).Reluctant(勉强的)和Possessive(独占的).

Javascript正则构造函数与正则表达字面量&amp;&amp;常用正则表达式

本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达式: 使用new RegExp()构造函数 使用正则表达字面量 先说结果,使用正则表达字面量的效率更高. 下面的示例代码演示了两种可用于创建正则表达式以匹配反斜杠的方法: 1 //正则表达字面量 2 var re = /\\/gm; 3 4 //正则构造函数 5 var reg = new RegE

ruby正则表达

1.Ruby中正则表达式的写法 主要有三种 在//之间,要进行转义 在%r{}内,不用进行转义 Regexp.new()内,不用进行转义 /mm\/dd/,Regexp.new("mm/dd"),%r{mm/dd}三者效果相同,实质都是新建了一个Regexp的类. 2.匹配的两种方法 =~肯定匹配, !~否定匹配.=~表达式返回匹配到的位置索引,失败返回nil,符号左右内容可交换 regexp#match(str),返回MatchData,一个数组,从0开始,还有match.pre_m

通过完善邮箱匹配来一步步学习正则表达

首先,在学习之前先确定一下邮箱的格式,邮箱的一般格式为[email protected],其中xxx可为数字.字母.下划线_,中划线-,点号.,加号+等组成. 在看具体代码之前需要先了解一些基础知识 # []表示匹配字符集中的任意一个字符# \w 表示匹配任何字母数字字符# \s表示任何空格字符# \d表示任何十进制数字# +表示匹配1次或多次前面出现的正则表达# *表示匹配0次或多次前面出现的正则表达# (?:)表示一个匹配不用保存的分组 1.匹配最简单的邮箱格式,如[email protec

JavaScript使用正则表达

JavaScript使用正则表达 正则表达式概述 在前面已经涉及了一些正则表达式的用法,现在将系统地学习正则表达式的语法和 用途.正则表达式主要用于进行字符串的模式匹配,例如判断一个字符串是否符合指定格式等.例如在windows下搜索文件,可以用“*”或者“?”这样的 通配符.在正则表达式的语法中,有更多这样的符号用于表示一个字符串的模式,表7.1列出了所有的特殊符号,它们也被称为元字符. 使用这些元字符,可以表示具有特定模式的字符串,例如: /^\s*$/:匹配一个空行. /\d{2}-\d{

转转转---js正则表达exec与match的区别说明

正则表达式对象有两个定义方式:: 1.第一种定义: new RegExp(pattern, attributes);如var reg = new RegExp("abc","g") 其中pattern为表示表达式内容,如上表示匹配abc attributes:g,全局匹配,i不区分大小写,m执行多行匹配,用最多的为g和i 2.第二种定义:/pattern/attributes. 如:var reg = /abc/g; 正则表达的规则一些规则在此不再说明,只记录exe