linux 重复模式元字符,Linux 正则表达式 vi, grep, sed, awk
\>
锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}
重复字符x,m次,如:'o\{5\}'匹配包含5个o的行。
x\{m,\}
重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}
重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W
\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b
单词锁定符,如: '\bgrep\b'只匹配grep。
egrep 支持 +, ?, | 等
3. sed - stream editor for filtering and transforming text
sed每次处理一行内容。处理时先把当前要处理的行存储在临时缓冲区,(称为“模式空间”,pattern space),用sed命令处理完成后(命令hHgGx用于处理hold space,跟模式空间一起完成处理),把缓冲区的内容送往output(即屏幕)。然后处理下一行,依次重复到文件末尾。sed不改变文件的内容变,但可以将结果重定向。
sed定址:
可以直接通过指定行数或者模式或者二者的组合选定要进行编辑的行, 如果不指定则处理所有的行。
sed '2,5d' file # 删除第2~5行
sed-n'3p'file # 只打印第三行 -n表示不打印匹配的行
sed'/My/,/You/d' file # 删除my~You之间的行
命令
功能
a\
在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
c\
用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用"\"续行
i\
在当前行之前插入文本。多行时除最后一行外,每行末尾需用"\"续行
d
删除行
h
把模式空间里的内容复制到暂存缓冲区
H
把模式空间里的内容追加到暂存缓冲区
g
把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
G
把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面
l
列出非打印字符
p
打印行(模式空间)
n
读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理
r
从文件中读取输入行
!
对所选行以外的所有行应用命令
s
用一个字符串替换另一个
g
在行内进行全局替换
w
将所选的行写入文件
x
交换暂存缓冲区与模式空间的内容
y
将字符替换为另一字符(不能对正则表达式使用y命令)
元字符
功能
示例
^
行首定位符
/^my/ 匹配所有以my开头的行
$
行尾定位符
/my$/ 匹配所有以my结尾的行
.
匹配除换行符以外的单个字符
/m..y/ 匹配包含字母m,后跟两个任意字符,再跟字母y的行
*
匹配零个或多个前导字符
/my*/ 匹配包含字母m,后跟零个或多个y字母的行
[]
匹配指定字符组内的任一字符
/[Mm]y/ 匹配包含My或my的行
[^]
匹配不在指定字符组内的任一字符
/[^Mm]y/ 匹配包含y,但y之前的那个字符不是M或m的行
\(..\)
保存已匹配的字符
1,20s/\(you\)self/\1r/ 标记元字符之间的模式,并将其保存为标签1,之后可以使用\1来引用它。最多可以定义9个标签,从左边开始编号,最左边的是第一个。此例中,对第1到第20行进行处理,you被保存为标签1,如果发现youself,则替换为your。
&
保存查找串以便在替换串中引用
s/my/**&**/ 符号&代表查找串。my将被替换为**my**
\<
词首定位符
/\
\>
词尾定位符
/my\>/ 匹配包含以my结尾的单词的行
x\{m\}
连续m个x
/9\{5\}/ 匹配包含连续5个9的行
x\{m,\}
至少m个x
/9\{5,\}/ 匹配包含至少连续5个9的行
x\{m,n\}
至少m个,但不超过n个x
/9\{5,7\}/ 匹配包含连续5到7个9的行
sed 不管是否找到指定的模式,退出状态都是0。只有当命令存在语法错误时,sed的退出状态才不是0。
4. awk - pattern scanning and processing language
awk 命令逐行扫描文件,寻找匹配特定模式的行,并在这些行上进行操作。命令语法:
awk -F域分隔符 'command' file
或
awk -f script-file file
command 由pattern + {action}组成,两者均为可选。如果没有指定模式,则应用到所有行;如果没有指定动作,则打印到标准输出 (屏幕)。
模式可以为:
/正则表达式/
关系表达式
模式匹配表达式: ~ 和 ~!
行的范围
BEGIN
END
action可以为:
变量或数组赋值
输出
函数操作
控制流命令
linux 重复模式元字符,Linux 正则表达式 vi, grep, sed, awk相关推荐
- linux 重复模式元字符,正则表达式(grep)元字符及模式匹配的介绍及sed高级应用选项...
正则表达式: 定义: 是一些字符或是特殊字符串模式的集合. 功能:根据模式搜索文本,并将符合模式的文本行显示出来. Pattern(模式): 文本字符和正则表达式的元字符组合而成匹配条件 grep: ...
- 【Linux】 字符串和文本处理工具 grep sed awk
Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...
- linux grep sed awk
linux 文本编辑命令grep sed awk(转) grep grep (global search regular expression(RE) and print out the li ...
- (管道| / 重定向 / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
原文连接:http://www.cnblogs.com/alwayswyy/p/5191137.html 本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下 一. ...
- linux三剑客及正则表达(grep,sed,awk)
首先我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令. 在说这三个命令前我们要插入一个小插曲就是"正则表达式 ...
- 正则表达式与扩展正则表达式(grep, sed, awk)
Linux中用来在文件中搜索字符串的命令,如grep, sed, awk等命令支持正则表达式与扩展正则表达式. 1. 基础正则表达式 符号 解释 示例 * 匹配0次或多次 b.*t . 匹配任意字符 ...
- Shell ❀ 三剑客 - Grep + Sed + Awk
文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...
- 三剑客grep sed awk
三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...
- Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)
shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...
最新文章
- html表格判断,lua table 长度解析
- [云炬创业基础笔记]第七章创业资源测试7
- Shiro与Springboot整合:配置依赖改造登录方法
- java工具类下载_java文件下载工具类
- vi 编辑器跳转到指定行数
- Grafana : 前端页面 通过API Key免登录访问Grafana
- C# 创建单例你会几种方式?
- linux裸磁盘的配置,【存储】nas模拟裸磁盘挂载swift
- 对计算机网络的基础认识
- 极客学院HTML5全套教程
- 兜兜转转还是回到程序员圈子
- 面试留“家庭作业”的公司,都TM是耍流氓!
- 酞菁绿,耐高温酞菁绿颜料, 酞菁有机颜料CAS: 1328-53-6
- SNP位点上下游序列查找1.0 2020-9-27
- Java统计字符串中文字符数目
- flv + livego + obs 实现简易直播平台(windows版+Linux版)
- Gitee上传代码保姆级教程(亲测有效)
- 方便实用的--股票涨跌停价计算器
- CNN | 06Cifar-10分类
- 一文理清---TSN时间敏感网络
热门文章
- 您的用户账户没有连接到http://192.168.0.112:8080/tfs上的team foundation server的权限
- 微软拟测试类微博服务OfficeTalk
- 刘德华2007新歌《一》歌词及在线试听地址
- C++之安装boost库
- FFmpeg之x264/x265转码去掉B帧(二十六)
- Linux虚拟内存那点事儿
- Android添加受保护广播
- SurfaceFlinger draw/render/display流程(fps)
- Android实时打印kernel和App log(两种方法)
- AVAssetWriter写入char*数据(video)