热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

linux的sed(增删改查)使用方法

sed的增删改查的基本操作参考:https:www.cnblogs.com0zclp6855740.html01:增(a)2个sed命令,分别是:(这些操作都是在内存中进行的,所以

sed的增删改查的基本操作

参考:https://www.cnblogs.com/0zcl/p/6855740.html

01:增(a)

2个sed命令,分别是:(这些操作都是在内存中进行的,所以不会 被写入到原文件中,如果需要修改原文件则需要用大 -i )

  eg:修改原文件的内容。为了防止修改配置文件,一定要实现辈分或则用测试文件测试

sed  -i  '2a ppppppp' test.txt  #在第二行之后添加数据,并写入到原文件

 

  • “a”:追加文本到指定行后,记忆方法:a的全拼是append,意思是追加。
  • “i“:插入文本到指定行前,记忆方法:i的全拼是insert,意思是插入。
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
hhhhhhhhh

[root@tom /]# sed '2a ppppppp' test.txt   #2a  代表在第二行之后进行 添加 操作
xxxxxxxxxxxx
mmmmmmmmmmmm      #新增的内容
ppppppp
hhhhhhhhh

[root@tom /]# sed '2i 9999' test.txt    #2i 代表在第二行之前进行 插入 操作
xxxxxxxxxxxx
9999        #新插入的内容
mmmmmmmmmmmm
hhhhhhhhh

总结:插入i 在之前, a添加在之后

ps:单引号和双引号的用法

#单引号--变量$PATH会将文本内容原封不动插入,不会解释成路径

#双引号--变量$PATH被解析以后在当作文本进行插入

总结:
  • 如果引号里面是普通字符串的话,你可以任意使用单引号或者双引号:
  • 如果引号里面是变量或者带反引号的命令的话,你想要变量解析的结果或者命令执行的结果,那就使用双引号;你想要引号内的原样字符串,那就使用单引号。
 

linux的sed(增删改查)使用方法

02:添加多行文本到一个文件中并写入到原文件中

[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk


[root@tom /]# sed -i "3a qq\nwww\neee\nrrr\nttt\nyyy\nuuu" test.txt # -i 代表写入原文件, \n 代表换行,一定不能忘记写 \n 不然不会起作用
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu



 03:删除

 1.删除单行文本(删除第三行文本)

[root@tom /]# sed "3d" test.txt    #3d  数字代表第几行,d代表删除
xxxxxxxxxxxx
mmmmmmmmmmmm
qq
www
eee
rrr
ttt
yyy
uuu

 2.删除第2行到第三行的数据

[root@tom /]# cat test.txt    
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu



[root@tom /]# sed "2,3d" test.txt     #删除第二行到第三行的数据(包含这首位这两个)
xxxxxxxxxxxx
qq
www
eee
rrr
ttt
yyy
uuu

3.正则匹配删除

  在sed软件中,使用正则的格式和awk一样,使用2个”/“包含指定的正则表达式,即“/正则表达式/”。

  "/k/d"有哪一行有k则删除这一行。 

[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu


[root@tom /]# sed "/k/d" test.txt  #删除包含k的这一行内容
xxxxxxxxxxxx
mmmmmmmmmmmm
qq
www
eee
rrr
ttt
yyy
uuu

正则表达式形式的多行删除,也是以逗号分隔2个地址,最后结果是删除包含“k”的行到包含“x”的行

[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu

[root@tom /]# sed "/m/,/y/d" test.txt   #删除包含m到包含y的行
xxxxxxxxxxxx
uuu

正则表达式我们知道“$”代表行尾,在sed中“$”代表文件的最后一行。

例子:

[root@tom /]# sed "/3,$/d" test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu


[root@tom /]# sed "3,\$d" test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
[root@tom /]# 

4:sed文本内容替换

  • “s”:单独使用-->将每一行中第一处匹配的字符串进行替换==>sed命令
  • “g”:每一行进行全部替换-->sed命令s的替换标志之一(全局替换),非sed命令。
  • “-i”:修改文件内容-->sed软件的选项,注意和sed命令i区别。

sed软件替换模型  ===>  sed -i 's#目标内容#替换内容#g'

  • 定界符/或#,第一个和第二个之间的就是被替换的内容,第二个和第三个之间的就是替换后的内容。建议使用#作为定界符。
  • s#目标内容#替换内容#g ,“目标内容”能用正则表达式,但替换内容不能用,必须是具体的。因为替换内容使用正则的话会让sed软件无所适从,它不知道你要替换什么内容。
  • 默认sed软件是对模式空间(内存中的数据)操作,而-i选项会更改磁盘上的文件内容。
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu

[root@tom /]# sed "s#m#b#g" test.txt   #将文本中的m全部替换成b,   s代表替换的意思,g代表全部
xxxxxxxxxxxx
bbbbbbbbbbbb
kkkkkkkkkkkk
qq
www
eee
rrr
ttt
yyy
uuu

 


推荐阅读
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
author-avatar
神烟醉_263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有