sed 借个使用的例子及特殊符号说明

来源:互联网 发布:淘宝定贝排名在线查询 编辑:程序博客网 时间:2024/06/06 04:35

例子:

1。

字符串:<ERecList Size="1" Total="2518"> 

要求  :抽取2518这个数字:


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


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


2。

字符串(url):http://abc13.EFG.com:4160/graph?node=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 is/^/ / 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/ ******

原创粉丝点击