Sed

[http://www.grymoire.com/Unix/Sed.html Sed - An Introduction and Tutorial by Bruce Barnett]

sed 不与初始的文件打交道,所有的改动输出到屏幕或重定向到文件。

格式为: sed [options] '{command}' [filename]

替换

's/{old value}/{new value}/' 
$ echo The tiger cubs will meet on Tuesday after school | sed 's/tiger/wolf/' 
The wolf cubs will meet on Tuesday after school

批量修改文件名

[http://user.it.uu.se/~matkin/documents/shell/ Reference]

Renaming several files at the same time If you have a number of files named foo.C, bar.C.gz, etc. and want to rename them to foo.cc, bar.cc.gz, etc. This line will do the trick.

ls *.C* | sed 's/\(.*\).C\(.*\)/mv & \1.cc\2/' | sh 

多次修改

全局修改

sed 默认非全局,只修改一次。用 g 设置全局。

sed 's/line/LINE/g' 

-n选项

1 line line1 2 line line2

3 line line3

删除行

删除1和2行

$ sed -n '1,2d' test

edit specific line

sed '32s/old/new/' < oldfile > newfile

其他

sed编辑命令 
p 打印匹配行 
= 显示文件行号 
a\ 在定位行号后附加新文本信息 
i\ 在定位行号后插入新文本信息 
d 删除定位行 
c\ 用新文本替换定位文本 
s 使用替换模式替换相应模式 
r 从另一个文件中读文本 
w 写文本到一个文件 
q 第一个模式匹配完成后推出或立即推出 
l 显示与八进制ASCII代码等价的控制字符 
{ } 在定位行执行的命令组 
n 从另一个文件中读文本下一行,并附加在下一行 
g 将模式2粘贴到/pattern n/ 
y 传送字符 
n 延续到下一输入行;允许跨行的模式匹配语句

[Reference: http://www.cublog.cn/u3/90136/showart_1795318.html]

Homepage
Comments

Hide Comments