位置: 编程技术 - 正文

Linux下的sed命令使用详解(linux中sed详细用法)

编辑:rootadmin

推荐整理分享Linux下的sed命令使用详解(linux中sed详细用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux sed命令详解,linux中sed命令的用法,linux教程:sed命令的用法,linux sed-i,linux教程:sed命令的用法,linux中sed详细用法,linux教程:sed命令的用法,linux sed命令详解,内容如对您有帮助,希望把文章链接给更多的朋友!

sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”pattern space,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。

使用语法sed命令的使用规则是这样的:复制代码代码如下:sed [option] 'command' input_file其中option是可选的,常用的option有如下几种:

-n 使用安静silent模式(想不通为什么不是-s)。在一般sed的用法中,所有来自stdin的内容一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来;-e 直接在指令列模式上进行 sed 的动作编辑;-f 直接将 sed 的动作写在一个文件内, -f filename 则可以执行filename内的sed命令;-r 让sed命令支持扩展的正则表达式(默认是基础正则表达式);-i 直接修改读取的文件内容,而不是由屏幕输出。

常用的命令有以下几种:

a :追加行append, a 的后面跟上字符串s(多行字符串可以用n分隔),则会在当前选择的行的后面都加上字符串s;

c :取代/替换行change,c 后面跟上字符串s(多行字符串可以用n分隔),则会将当前选中的行替换成字符串s;i :插入行insert,i 后面跟上字符串s(多行字符串可以用n分隔),则会在当前选中的行的前面都插入字符串s;d:删除行delete,该命令会将当前选中的行删除;p:打印print,该命令会打印当前选择的行到屏幕上;s:替换字符串subs,通常s命令的用法是这样的:1,2s/old/new/g,将old字符串替换成new字符串命令示例假设有一个本地文件test.txt,文件内容如下:复制代码代码如下:[qifuguang@winwill~]$ cat test.txtthis is first linethis is second linethis is third linethis is fourth linethis fifth linehappy everydayend本节将使用该文件详细演示每一个命令的用法。

a命令(追加行)例一复制代码代码如下:[qifuguang@winwill~]$ sed '1a add one' test.txtthis is first lineadd onethis is second linethis is third linethis is fourth linethis is fifth linehappy everydayend本例命令部分中的1表示第一行,同样的第二行写成2,第一行到第三行写成1,3,用$表示最后一行,比如2,$表示第二行到最后一行中间所有的行(包含第二行和最后一行)。

本例的作用是在第一行之后增加字符串”add one”,从输出可以看到具体效果。

例二复制代码代码如下:[qifuguang@winwill~]$ sed '1,$a add one' test.txtthis is first lineadd onethis is second lineadd onethis is third lineadd onethis is fourth lineadd onethis is fifth lineadd onehappy everydayadd oneendadd one本例表示在第一行和最后一行所有的行后面都加上”add one”字符串,从输出可以看到效果。

例三复制代码代码如下:[qifuguang@winwill~]$ sed '/first/a add one' test.txtthis is first lineadd onethis is second linethis is third linethis is fourth linethis is fifth linehappy everydayend本例表示在包含”first”字符串的行的后面加上字符串”add one”,从输出可以看到第一行包含first,所以第一行之后增加了”add one”

例四复制代码代码如下:[qifuguang@winwill~]$ sed '/^ha.*day$/a add one' test.txtthis is first linethis is second linethis is third linethis is fourth linethis is fifth linehappy everydayadd oneend本例使用正则表达式匹配行,^ha.*day$表示以ha开头,以day结尾的行,则可以匹配到文件的”happy everyday”这样,所以在该行后面增加了”add one”字符串。

Linux下的sed命令使用详解(linux中sed详细用法)

i命令(插入行)i命令使用方法和a命令一样的,只不过是在匹配的行的前面插入字符串,所以直接将上面a命令的示例的a替换成i即可,在此就不??铝恕?/p>

c命令(替换行)例五复制代码代码如下:[qifuguang@winwill~]$ sed '$c add one' test.txtthis is first linethis is second linethis is third linethis is fourth linethis is fifth linehappy everydayadd one本例表示将最后一行替换成字符串”add one”,从输出可以看到效果。

例六复制代码代码如下:[qifuguang@winwill~]$ sed '4,$c add one' test.txtthis is first linethis is second linethis is third lineadd one本例将第四行到最后一行的内容替换成字符串”add one”。

例七复制代码代码如下:[qifuguang@winwill~]$ sed '/^ha.*day$/c replace line' test.txtthis is first linethis is second linethis is third linethis is fourth linethis is fifth linereplace lineend本例将以ha开头,以day结尾的行替换成”replace line”。

d命令(删除行)例八复制代码代码如下:[qifuguang@winwill~]$ sed '/^ha.*day$/d' test.txtthis is first linethis is second linethis is third linethis is fourth linethis is fifth lineend本例删除以ha开头,以day结尾的行。

例九复制代码代码如下:[qifuguang@winwill~]$ sed '4,$d' test.txtthis is first linethis is second linethis is third line本例删除第四行到最后一行中的内容。

p命令(打印行)例十复制代码代码如下:[qifuguang@winwill~]$ sed -n '4,$p' test.txtthis is fourth linethis is fifth linehappy everydayend本例在屏幕上打印第四行到最后一行的内容,p命令一般和-n选项一起使用。

例十一复制代码代码如下:[qifuguang@winwill~]$ sed -n '/^ha.*day$/p' test.txthappy everyday本例打印以ha开始,以day结尾的行。

s命令(替换字符串)实际运用中s命令式最常使用到的。

例十二复制代码代码如下:[qifuguang@winwill~]$ sed 's/line/text/g' test.txtthis is first textthis is second textthis is third textthis is fourth textthis is fifth texthappy everydayend本例将文件中的所有line替换成text,最后的g是global的意思,也就是全局替换,如果不加g,则只会替换本行的第一个line。

例十三复制代码代码如下:[qifuguang@winwill~]$ sed '/^ha.*day$/s/happy/very happy/g' test.txtthis is first linethis is second linethis is third linethis is fourth linethis is fifth linevery happy everydayend本例首先匹配以ha开始,以day结尾的行,本例中匹配到的行是”happy everyday”这样,然后再将该行中的happy替换成very happy。

例十四复制代码代码如下:[qifuguang@winwill~]$ sed 's/(.*)line$/1/g' test.txtthis is firstthis is secondthis is thirdthis is fourththis is fifthhappy everydayend这个例子有点复杂,先分解一下。首先s命令的模式是s/old/new/g这样的,所以本例的old部分即(.*)line$,sed命令中使用()包裹的内容表示正则表达式的第n部分,序号从1开始计算,本例中只有一个()所以(.*)表示正则表达式的第一部分,这部分匹配任意字符串,所以(.*)line$匹配的就是以line结尾的任何行。然后将匹配到的行替换成正则表达式的第一部分(本例中相当于删除line部分),使用1表示匹配到的第一部分,同样2表示第二部分,3表示第三部分,可以依次这样引用。比如下面的例子:复制代码代码如下:[qifuguang@winwill~]$ sed 's/(.*)is(.*)line//g' test.txtthis firstthis secondthis thirdthis fourththis fifthhappy everydayend正则表达式中is两边的部分可以用1和2表示,该例子的作用其实就是删除中间部分的is。

Linux系统的垃圾清理方法总结 Linux的最大优点之一就是,使用一段时间后,它照样很稳定。Linux面临的最大挑战就是,将它安装起来,并找到并配置你完成工作所需要的软件。一旦你

Linux系统下以RPM方式如何安装mysql-5.7.9 mysql-5.7.位RPM集合包在Linux系统中的安装过程。因为我用的位的CentOS7所以我下的是位的集合包,如果你用的位的Linux系统请下载位的集合包。这里

Linux下PureFtpd的基本安装使用与超时问题解决 基本的安装使用方法首先安装之前最好用netstat-ntl来查看ftp默认的端口是不是已经被占用了,同时也可以用ps-ef指令查看开启了哪些服务,看一下有没

标签: linux中sed详细用法

本文链接地址:https://www.jiuchutong.com/biancheng/353375.html 转载请保留说明!

上一篇:Arch Linux安装后的一些初始设置简介(arch linux安装yay)

下一篇:Linux系统的垃圾清理方法总结(linux系统垃圾怎么清理)

  • 如何理解递延所得税资产和递延所得税负债
  • 预缴税款是什么科目
  • 长期股权投资中应采用成本法核算的是
  • 电信没有基站为什么信号也很好
  • 什么是未投入使用的固定资产
  • 公司注销公司帐户剩的钱怎么办
  • 向个人账户汇款选项
  • 给员工购买意外险进项税能不能抵扣
  • 银行承兑汇票贴现率多少
  • 年终零余额账户有余额
  • 简单征收的进项税额怎么调出来?
  • 销货清单怎么写才正规
  • 建筑企业资质使用对建造师补充要求
  • 固定资产完工前盘亏的工程物资净损失
  • 资产减值损失会影响利润吗
  • 代扣税金是什么意思
  • 营改增后停车费税率
  • 差额开票的会计分录
  • 员工生育期间社保
  • 无票收入确认收入
  • 公司将自有车辆对外出租
  • 领用工程物资用于在建工程的进项税抵扣问题
  • 企业实缴出资额怎么查
  • 免征文化事业建设费条件的销售额标准
  • 条形码费用属于哪个科目
  • 个体工商户未给员工缴纳社保
  • 腾讯电脑管家中有没有红色警戒下载玩
  • uniapp关闭当前页面
  • linux中tomcat如何启动
  • 锁定任务栏不管用
  • 银行存款期末调汇吗
  • 中秋购物
  • 银行对公账户收款码手续费多少
  • 劳务派遣公司账目如何做
  • 劳务报酬怎么做帐
  • 开发产品完工结转
  • wordpress使用
  • 泰姬陵 (© Michele Falzone/plainpicture)
  • 史上最贵的微博
  • async/await原理
  • php图文教程
  • vue 组件调用
  • c语言中数组越界
  • 租金算营业成本还是管理费用
  • opengl环境光参数
  • 企业出口证明
  • 用专项资金支付项目滞纳金合规么
  • 申报表跟账不一致,如何调整账
  • php调用变量
  • 水运企业会计核算办法
  • 减值准备为什么不影响影响资产余额
  • 劳务报酬的增值税起征点
  • 个税征税对象包括哪些
  • 残次品生产成本怎么算
  • 什么情况下增值税发票不能抵扣
  • vista sp2 旗舰版 key
  • 系统审核策略配置
  • mac如何用u盘安装win10
  • windows10点击任务栏没有反应
  • 桌面任务栏消失怎么办
  • win7win8.1win10哪个好
  • linux纯文本浏览器
  • win7系统在那个文件夹
  • win10 功能
  • window10里的ie浏览器
  • win10预览版和正式版区别
  • linux系统中怎么编写一个程序
  • win8怎么看windows
  • [置顶]游戏名:chivalry2
  • css样式表可以兼容所有浏览器吗
  • 相机跟随人物移动
  • emulator: ERROR: no search paths found in this AVD's configuration. Weird, the AVD's config.ini file
  • JavaScript Length 属性的总结
  • java教程
  • javascript 类
  • 组织收入原则三个务必
  • 税务局调查巡查政策依据
  • 食品烟酒消费包括哪些
  • 西安医疗保险官网
  • 年报汇算清缴怎么做
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设