sed命令格式为:
sed [-nefri] 'command' 输入文本
常用选项:
-n∶使用安静(silent)模式;sed的一般用法中,stdin的数据都会stdout,加上该参数后,则只有经过sed处理的那行才会stdout;
-e∶直接在指令列模式上进行sed的编辑;
-f∶从文件中读取操作;
-i∶直接修改读取的档案内容,而不是由萤幕输出;
常用命令:
a∶新增;其后可接字符串,这些字符串会在下一行出现;
c∶取代;其后可接字符串,这些字符串可取代n1,n2之间的行;
d∶删除;
i∶插入;其后可接字符串,这些字串会在上一行出现;
p∶列印;亦即将某个选择的资料印出;通常与参数-n一起使用;
s∶替换;通常与正则表达式一起使用;
举例:(假设我们有一文件名为ab)
###删除某行 [root] sed '1d' ab #删除第一行 [root] sed '$d' ab #删除最后一行 [root] sed '1,2d' ab #删除第一行到第二行 [root] sed '2,$d' ab #删除第二行到最后一行 ###显示某行 [root] sed -n '1p' ab #显示第一行 [root] sed -n '$p' ab #显示最后一行 [root] sed -n '1,2p' ab #显示第一行到第二行 [root] sed -n '2,$p' ab #显示第二行到最后一行 ###使用模式进行查询 [root] sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行 [root] sed -n '/\$/p' ab #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义 ###增加 [root] cat ab Hello! ruby is me,welcome to my blog. end [root] sed '1a drink tea' ab #第一行后增加字符串"drink tea" Hello! drink tea ruby is me,welcome to my blog. end [root] sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea" Hello! drink tea ruby is me,welcome to my blog. drink tea end drink tea [root] sed '1a drink tea\nor coffee' ab #第一行后增加多行,使用换行符\n Hello! drink tea or coffee ruby is me,welcome to my blog. end ###替换 [root] sed '1c Hi' ab #第一行代替为Hi Hi ruby is me,welcome to my blog. end [root] sed '1,2c Hi' ab #第一行到第二行代替为Hi Hi end ###替换 格式:sed 's/要替换的字符串/新的字符串/g' (要替换的字符串可以用正则表达式) [root] sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird [root] sed -n '/ruby/p' ab | sed 's/ruby//g' #删除ruby ###插入 [root] sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye" [root] cat ab Hello! ruby is me,welcome to my blog. end bye ###删除匹配行 ###sed -i '/匹配字符串/d' filename ###替换匹配行中的某个字符串 ###sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' filename
转载自: http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html