您的位置:首页 > 其它

正则表达式(二)

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" 字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: