发布时间:2014-09-05 16:47:07作者:知识屋
sed(流编辑器),用来在命令行中直接更改一个文件中的内容,这个命令对于使用
shell脚本自动批量更改大量文本文件比较有用.如你当前目录中有10000个文本文件
,假设文件名从text.1到text.10000,若你希望更改这10000个文件,一种方法是使用
如vi这样的文本编辑器来逐一进行更改,而对于优秀的管理员来说它们可能会书写一个
shell脚本来使用sed批量进行更改.本文就是sed这个命令的快速入门教程.
(1).基本格式
sed [-nefri] [动作] [Input_File]
选项:
-n :表示安静模式操作,也就是只将被更改的行输出,没更改的行不输出,默认sed
是输出所有的行
-e Scrip:指定sed的执行命令可以指定多个这个选项
-f Script_File:指定执行一个包含sed命令的脚本文件
-r:支持扩展的正则表达式(默认只支持基础的正则表达式)
-i:直接操作原文件,默认是不更改原文件的,而只是将更改结果直接输出到
标准输出上,可以使用这个选项来让sed直接更改原文件
动作:
基本格式: [n1[,n2]] Function
说明:n1和n2用来指定修改的范围(从第n1行到第n2行),他们不一定必须指定
若都没指定则表示修改整个文件,若没有指定n2则表示修改的范围为从n1
到文件末尾.
注:n1,n2可以为数字,表示第N行(从1开始),当然也可以用'/Pattern/'来指定
表示使用查找来指定函数,即查找到最先包含Pattern的行为该指定的行数
Function有以下值:
(1).插入
[1].i String:表示当前行前面插入一行,内容为String
[2].a String:表示当前行后面插入一行,内容为String
(2).删除
d:表示将指定的行删除
(3).替换
[1].c String:指定整行替换为String
[2].s/Find_String/Replace/:表示用Replace替换Find_String
(4).打印
p:表示将选择的行打印出来
下面是一些实例:
假设文件example.txt的内容如下
#############################example.txt内容开始###############
line1 hello world1
line2 hello world2
line3 hello world3
#############################example.txt内容结束###############
(1).在第1行后面插入一行,内容为Insert after line1
sed -i -e '1a Insert after line1' example.txt
结果example.txt内容为:
line1 hello world1
Insert after line1
line2 hello world2
line3 hello world3
(2).在第一行前面插入一行,内容为Insert before line1
sed -i -e '1i Insert before line1' example.txt
结果:
Insert before line1
line1 hello world1
Insert after line1
line2 hello world2
line3 hello world3
(3).删除第2到第4行
sed -i -e '2,4d' example.txt
结果:
Insert before line1
line3 hello world3
(4).打印第2行
sed -e '2p' example.txt
(5).将第2行替换为line2 hello world
sed -i -e '2c line2 hello world' example.txt
结果:
Insert before line1
line2 hello world
(6).替换第二行的hello world为world hello
sed -i -e '2s/hello world/world hello/' example.txt
结果:
Insert before line1
line2 world hello
好了sed简单入门就讲到这里了,由于sed命令实在太好用了,也太强大了,因此要
熟练使用sed还必须参考完整的sed手册页或其他高手写的教材,本文只是一个简单
的入门教材而已
本文出自 “huangyandong” 博客
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能