Chinaunix首页 | 论坛 | 博客
  • 博客访问: 490141
  • 博文数量: 140
  • 博客积分: 461
  • 博客等级: 下士
  • 技术积分: 878
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-28 10:06
文章分类

全部博文(140)

文章存档

2016年(1)

2015年(6)

2014年(20)

2013年(1)

2012年(16)

2011年(96)

分类: LINUX

2011-06-14 21:44:36

例子:

1。

字符串:2518 "> 

要求  :抽取2518这个数字:


实现:echo "\ "1\ " Total=\ "2518\ ">" | sed 's/\ "1\ " Total=\ "//g' | sed 's/\ ">//g'


Note:注意转移符号:\ 。 都用红色标出。


2。

字符串(url):26125 &offset=0&nbins=1&irversion=601&format=xml

  要求: 从以上字符串中抽取:26125


实现:echo $url | sed 's/^.*node= //g' | sed 's/&.*$ //g'


1) ^ : 代表当前行首:^.*node= 表示行首到node=以及他们二者之间包括的所有字符

2) $ : 代表当前行尾 : &.*$ 表示&到末尾,以及它们之间的所有字符

3) & : 代表其前 pattern 字串

例:sed -e 's/test/& my car/' 替换后变为:test my car

4) /t.*t/d "." 表示任意字元; "*" 表示当前字元可重任意次 , 它们结合 ".*" 表示两 "t" 字母间的任意



========= 其他=================================================================

常用option

-i 此选项可以自动把修改结果保存到文件中,不然会打印到stdout

-n 就是不把文件打印到标准输出。

-e 可以多个命令一起使用,用它连起来就好了

 

引号内的命令:

s 替换

d 删除

a 添加

p 打印

r 读入它档内容

w 写资料到它档内

a\ 添加字符串,输入的资料必须从下一行输入

 

1 在每一行开始处插入5 个空格( 整页偏移)
  sed i s/^ / / test.c
2
删除每一行开头的空白( 空格,TAB) 左对齐排列全文

sed  -i 's/^ [ t]*//' test.py

^ [ \t]* 的含义为以空格或者TAB 键开始的( 或者是他们的组合)

3 在每一含有"baz" 的行中用"bar" 替换( 查找并替换)foo"
  sed i /baz/s/foo/bar/g
4
在每一含有"baz" 的行中用行首加注释

   sed i '/ baz /s/^ /#/g'

5 删除两个字符串之间的行

Sed  -i  /abc/,/123/d test.c

Sed  -i  2,10d 删除210
6
在当前行的下一行插入文件

Sed  -i  /hello/a\ ******

阅读(7494) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~