分类: Python/Ruby
2011-06-18 10:04:45
常用选项:
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-i∶直接修改读取的档案内容,而不是由萤幕输出。
常用命令:
a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!
举例:(假设我们有一文件名为hudie.txt) 删除
1. Sed ‘1,4d’ hudie.txt //删除1-4行
2. sed ‘/La/d’ hudie.txt //删除包含La的行
3. sed ‘/La/!d hudie.txt //删除不包含La的行
4. sed ‘/^$/d hudie.txt //删除空行
5. Sed ‘/[0-9]\{3\}/d’ hudie.txt //把含有三位数的行删除
显示
sed -n ‘/La/p’ hudie.txt //显示含有La的行, -n只显示符合样式的数据
取代
1. Sed -n ‘s/La/0o/p hudie.txt //字符串0o替换La , -p只会替换第一行
2. Sed -n ‘s/La/0o/gp hudie.txt //加上全局命令g ,La全部替换为0o
4. sed ‘s/^…//’ hudie.txt //删除每一行开头的三个字符
5. Sed -n ‘/AAA/s/La/0o/p hudie.txt //找到含有AAA的行之后,将La替换成0o
6. sed -n ‘/AAA/,/DDD/s/La/0o/p’ huedie.txt //将含有AAA到含有DDD的那几行中的La替换0o
7 . sed -n ‘2,4s/La/0o/p // 由第2行到第4行,皆将其中的La替换为0o
增加
1. sed '1a haha' //第一行后增加字符串"haha"
2. sed '1,3a haha' ab //第一行到第三行后增加字符串"haha"
3. sed -i '$a byebye' hudie.txt //在文件ab中最后一行直接输入"byebye"
4. sed '1,2c Hi' hudie.txt //第一行到第二行代替为Hi
"