linux shell sed

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。

1. 什么是sed

sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。

2. sed的使用方法

[root@localhost ~] # sed [选项] ‘[动作]’ 文件名

sed的常用选项:
-r:使用扩展正则表达式
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-f:后跟保存了sed指令的文件
-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行

sed中的编辑命令:
a:追加 向匹配行后面插入内容
c:更改 更改匹配行的内容
i:插入 向匹配行前插入内容
d:删除 删除匹配的内容
s:替换 替换掉匹配的内容
p:打印 打印出匹配的内容,通常与-n选项和用
=:用来打印被匹配的行的行号
n:读取下一行,遇到n时会自动跳入下一行
r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件

工作常用技巧总结

1. 添加文本到文件的第一行和最后一行

sed -i '1i添加的内容' filename # 在第一行前添加字符串
sed -i '$i添加的内容' filename # 在最后一行行前添加字符串
sed -i '$a添加的内容' filename # 在最后一行行后添加字符串

亲测可用!

2. linux shell sed 替换的字符串 包含 单引号如何处理

问题描述:
linux中sed命令替换包含引号、斜杠等特殊字符的的使用

解决方案:
在字符替换中,可能会遇见引号,“/”等的替换,这时应该注意,sed的命令原型是:

sed -i “s/oldstring/goalstring/g” file

如果一个路径是data/path/abc,现在要将此路径换成一个字符串cde

但是这时跟在s后边的其实是分隔符,用以将oldstring替换成cde;他可以使用任意字符,这时如果字符串中有“/”,就会发生混乱,在这个时候可以用#当做分隔符,就变成

sed -i “s#abc#cde#g” file

这时如果abc中包含“/”就可以随便替换了;

引号的替换:
需要将引号转义,使用反斜杠“\”,比如替换" ’ ‘div’ ’ “,如果需要将它替换成‘div’ ;可以使用sed -i s#”‘’#'#g就能替换了。

引号替换demo:
如下demo,我们把 #listen_addresses = 开头的行,替换为listen_addresses = ‘*’

    sed -i 's/#listen_addresses =.*/listen_addresses = \'*\''/ $pg_conf

3. 获取文件中 ${xxx} 中的变量字符xxx

# sed -n 's/^[^#].*${\(.*\)}.*/\1/p' xxx.sh
REDIS_HOST
REDIS_PORT
REDIS_PASSWORD

linux shell sed快速开始-(添加文本到文件的第一行和最后一行、文本的行尾添加字符)相关推荐

  1. linux shell sed命令 在文本每行 行尾 或 行首 添加字符

    用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed "s/^/HEAD&am ...

  2. linux shell sed awk 命令(2)-awk

    linux shell sed awk 命令(2)-awk awk语法格式: awk [选项] -f program-file [ -- ] file ... 选项: -F fs, --field-s ...

  3. sed搜索某行在行末追加_sed在行首或者行尾添加内容

    昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...

  4. sed在某一行行首添加字符_sed在行首或者行尾添加内容

    昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...

  5. sed行首行尾添加字符

    用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' ...

  6. Linux shell 脚本实现u盘挂载及文件拷贝

    Linux shell 脚本实现u盘挂载及文件拷贝 对于linux系统来说.使用mount命令(需管理员模式使用)来进行挂载硬盘 对于我的虚拟机来说.在插入u盘时,使用sudo fdisk -l命令设 ...

  7. notepad++在行首行尾添加字符

    一.行首.行尾添加字符 1.使用快捷键 Ctrl+H 2.^行首.$行尾 3.查找模式--正则表达式 二.举例说明: 1.使用快捷键Ctrl+H,在查找目标中写^,然后选择正则表达式,点击全部替换. ...

  8. linux shell sed 添加空行

    一.每行前后添加空行 1.每行后面添加一行空行: sed G tmp 每行前面添加一行空行: sed '{x;p;x;}' tmp 2.每行后面添加两行空行: sed 'G;G' tmp 每行前面添加 ...

  9. linux shell sed i,Linux Shell学习-sed命令详解

    (1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准 ...

  10. sed 在行首或者行尾添加文本

    sed在行首添加注释 匹配1111的行 并在行首添加# 注释 sed -i '/1111/s/^/#/' /root/test.sh 匹配1111的行 并在行尾添加 # sed -i '/1111/s ...

最新文章

  1. 2020-12-06
  2. ComplexHeatmap()函数解析
  3. Redis集群——利用Gearman在Lnmp架构中做MySQL的缓存服务器
  4. CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
  5. 【PowerBi】Power Query导入Excel数据
  6. QML提供的JavaScript主机环境
  7. 5年 Python 功力,总结了 10 个开发技巧
  8. python 解压zip文件_Python 解压缩文件详解
  9. linux中死锁的概念,【Linux】死锁概念总结
  10. UltraISO v 9.6 单文件版
  11. 关于图书馆占座问题的调查
  12. 基于BP神经网络的数字识别
  13. 100个java项目_我如何在100天内建立​​100个项目
  14. 快递单号的正则提取试
  15. QT5.7操作word
  16. 零基础学Python6
  17. Stm32 HAL_UART_Receive读取不到数据的问题
  18. 气体润滑轴承matlab分析,轴承润滑常见的7种方式及其优缺点
  19. MITRE ATTCK框架
  20. Java Calendar 获得某一天的零时

热门文章

  1. 联想电脑黑屏但电源键亮着的解决办法
  2. mysql sending data 耗时_mysql查询语句出现sending data耗时解决
  3. 2021-05-11PLC通信Libnodave-明天继续
  4. 电脑c盘格式化,如何恢复C盘文件?
  5. MAC系统查看端口,并关闭端口占用
  6. PS常用的三种抠图方法,能应对99%的抠图场景
  7. 【OpenGL】OpenGL帧缓存对象(FBO:Frame Buffer Object)
  8. JAVA计算机毕业设计政府会议管理系统Mybatis+系统+数据库+调试部署
  9. [江枫]In Memory Undo与logical standby database
  10. 百度糯米 android,百度糯米安卓版|百度糯米for android官方手机版 6.7.1 - 系统天堂...