正则表达式(二)
2014-02-22 01:16
197 查看
正则表达式(二)
一、 sed 可以将数据进行取代、删除、新增、截取
语法:sed [-nefr] [动作]
-n、使用安静模式。在一般sed的用法中,所有来自stdin的数据一般都会被列出到屏幕上。但是加上-n参数后,则只有经过sed特殊处理的哪一行才会被列出
-e、直接在指令列模式上进行sed的动作编辑
-f、直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作
-r、sed的动作支持的是扩展正则表达式的语法
-i、 直接修改读取的文件内容,而不是由屏幕输出
动作说明:[n1[,n2]] function
n1、n2:不一定会存在,一般表示选择进行操作的行数
function:
a、新增在当前行后面
c、取代
d:删除
i:插入在当前行前面
p:打印
s:取代,如 1,20s/old/new/g
实例:
一 、以行为单位的新增、删除功能
1、将 /etc/passwd 的内容列出来且打印行号,同时,将第 2~5 行删除
nl /etc/passwd | sed '2,5'd
2、承上题,在第二行后加上“hello word”一行
nl /etc/passwd | sed '2a hello word'
3、承上题,在第二行后加上“hello word”两行
nl /etc/passwd | sed '2a hello word \ >
hello word2'
说明(新增多行时,每一行之间都必须要以反斜杠进行新行的增加)
二、以行为单位进行取代与显示功能
1、我想将第 2-5 行的内容取代成为“No 2-5 number”
nl /etc/passwd | sed '2,5c No 2-5 number'
2、列出第10-20行之间的数据
nl /etc/passwd | sed -n '10,20p' 必须加-n
三、部分数据的搜索并取代
cat /etc/man.config | grep 'MAN'| sed 's/#.*//g'| sed '/^$/d'
二、egrep 扩展这则表达式
1、+:重复一个或一个以上的前一个字符
egrep -n 'go+d' regular_express.txt :搜索god good goood
2、?:零个或者一个的一个字符
egrep -n 'go?d' regular_express.txt :搜索gd god
3、|:或者
egrep -n 'gd|good' regular_express.txt :搜索gd good
4、():找出群组
egrep -n 'g(la|oo)d' regular_express.txt :搜索glad或者good
5、()+:多个组群
echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'
找开头是 A 结尾是 C ,中间有一个以上的 "xyz" 字符串
一、 sed 可以将数据进行取代、删除、新增、截取
语法:sed [-nefr] [动作]
-n、使用安静模式。在一般sed的用法中,所有来自stdin的数据一般都会被列出到屏幕上。但是加上-n参数后,则只有经过sed特殊处理的哪一行才会被列出
-e、直接在指令列模式上进行sed的动作编辑
-f、直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作
-r、sed的动作支持的是扩展正则表达式的语法
-i、 直接修改读取的文件内容,而不是由屏幕输出
动作说明:[n1[,n2]] function
n1、n2:不一定会存在,一般表示选择进行操作的行数
function:
a、新增在当前行后面
c、取代
d:删除
i:插入在当前行前面
p:打印
s:取代,如 1,20s/old/new/g
实例:
一 、以行为单位的新增、删除功能
1、将 /etc/passwd 的内容列出来且打印行号,同时,将第 2~5 行删除
nl /etc/passwd | sed '2,5'd
2、承上题,在第二行后加上“hello word”一行
nl /etc/passwd | sed '2a hello word'
3、承上题,在第二行后加上“hello word”两行
nl /etc/passwd | sed '2a hello word \ >
hello word2'
说明(新增多行时,每一行之间都必须要以反斜杠进行新行的增加)
二、以行为单位进行取代与显示功能
1、我想将第 2-5 行的内容取代成为“No 2-5 number”
nl /etc/passwd | sed '2,5c No 2-5 number'
2、列出第10-20行之间的数据
nl /etc/passwd | sed -n '10,20p' 必须加-n
三、部分数据的搜索并取代
cat /etc/man.config | grep 'MAN'| sed 's/#.*//g'| sed '/^$/d'
二、egrep 扩展这则表达式
1、+:重复一个或一个以上的前一个字符
egrep -n 'go+d' regular_express.txt :搜索god good goood
2、?:零个或者一个的一个字符
egrep -n 'go?d' regular_express.txt :搜索gd god
3、|:或者
egrep -n 'gd|good' regular_express.txt :搜索gd good
4、():找出群组
egrep -n 'g(la|oo)d' regular_express.txt :搜索glad或者good
5、()+:多个组群
echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'
找开头是 A 结尾是 C ,中间有一个以上的 "xyz" 字符串
相关文章推荐
- 寻找前K大数(复习各种排序)
- 详解Cocos2d-X中宏CC_DLL
- hdu 1022 Train Problem I
- xtrabackup导致MYSQL HANG起
- 標量子查詢
- xtrabackup原理及实施
- 学习unxi系统管理、启动和关闭笔记
- [MFC] CList
- 游戏运行时,WIN2003报错:设备 \Device\Harddisk0有一个不正确的区块。
- android,HttpPost发送数据到服务器
- 代码的优化过程: 生成括号 Generate Parentheses
- 五大布局
- SetUnhandledExceptionFilter函数学习
- 四位科研牛人介绍的文献阅读经验
- cocos2d-x之系统时间和随机数
- 单表数据加载到TreeView(.Node.Level>=2) "蝴蝶效应" SelectedNode注意事项 效能优化 综合问题
- 初试PyOpenGL四 (Python+OpenGL)GPU粒子系统与基本碰撞
- cocos2dx lua json解析
- JS document.URL , windows.location.href 的区别
- 怎样确定研究生论文选题