在自己没有必要探索的地方,吸取前辈们的经验就好了
谢谢以下几位博主
SED 工具使用介绍:
http://blog.csdn.net/zg_hover/article/details/1804481#comments
AWK 工具
http://blog.sina.com.cn/s/blog_6d09b5750100vx24.html //该网页包括三个工具的知识,建议学习
RPM 工具:
http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html
在他们的基础上自己试一遍
在以下的使用中 '' 单引号内的数字可以为一个区域 a,b 表示 a~b 在内容编辑中也可加入换行符(\n)等常用符号
^ 锚定行的开始 如:/^sed/匹配所有以sed开头的行。
$ 锚定行的结束 如:/sed$/匹配所有以sed结尾的行。
. 匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。
* 匹配零或多个字符
\ 锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。 x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个o的行。
x\{m,\} 重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。 x\{m,n\} 重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行>。
a
sed '1a222' file #表示读取文件file 中的第一行,并在其后添加一行"222" //add
c
sed '1c222' file #用222改动file 中第一行为222 //change
d/D //功能区分不明确
sed '1,3d' file
i
sed '1i123' file #在当前行前面插入文本
s
sed 's/pre/now/g' file #g替换文件中所有 pre 为 now, 如果不加g, 则替换每行中的第一个
n
sed -n ’s/^test/mytest/p’ file #(-n)选项和p标志一起使用表示只打印那些发生替换的行
sed 's/^dzk/&mytest/p' file #会把所有的以dzk开头的行的dzk后追加mytest 如: dzk11 替换为dzkmytest11
sed ’s#10#100#g’ file #所有跟在s后的符号(不管什么字符)都会理解成本来的'/',作用还是替换文件中所有的10为100
sed -n '/test/,/check/p' file #打印所有在test和check之间的内容
sed -n ’5,/^test/p’ file #打印从第5行开始到以test开头的内容
sed '/test/, /check/s/^/haha/' #file #将文件中从test 到 check的行之间的行在每行的开始添加haha
sed '/test/r tmp' file #查找file中的带有test的一行(会在所有匹配的行后),并且在该行后面加入tmp文件中所有内容
sed '/test/w tmp' file #查找file中所有带有test的行,然后将其写到tmp文件中