sed是文件处理工具,其本身是管道命令,主要以行为单位进行替换、删除、新增、选取等操作.
sed命令格式为:
sed [-nefri] 'command' 输入文本
常用选项:
-n∶使用安静(silent)模式;sed的一般用法中,stdin的数据都会stdout,加上该参数后,则只有经过sed处理的那行才会stdout;
-e∶直接在指令列模式上进行sed的编辑;
-f∶从文件中读取操作;
-i∶直接修改读取的档案内容,而不是由萤幕输出;
常用命令:
a∶新增;其后可接字符串,这些字符串会在下一行出现;
c∶取代;其后可接字符串,这些字符串可取代n1,n2之间的行;
d∶删除;
i∶插入;其后可接字符串,这些字串会在上一行出现;
p∶列印;亦即将某个选择的资料印出;通常与参数-n一起使用;
转载自: http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html
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