linux shell sed快速开始-(添加文本到文件的第一行和最后一行、文本的行尾添加字符)
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快速开始-(添加文本到文件的第一行和最后一行、文本的行尾添加字符)相关推荐
- linux shell sed命令 在文本每行 行尾 或 行首 添加字符
用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed "s/^/HEAD&am ...
- linux shell sed awk 命令(2)-awk
linux shell sed awk 命令(2)-awk awk语法格式: awk [选项] -f program-file [ -- ] file ... 选项: -F fs, --field-s ...
- sed搜索某行在行末追加_sed在行首或者行尾添加内容
昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...
- sed在某一行行首添加字符_sed在行首或者行尾添加内容
昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...
- sed行首行尾添加字符
用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' ...
- Linux shell 脚本实现u盘挂载及文件拷贝
Linux shell 脚本实现u盘挂载及文件拷贝 对于linux系统来说.使用mount命令(需管理员模式使用)来进行挂载硬盘 对于我的虚拟机来说.在插入u盘时,使用sudo fdisk -l命令设 ...
- notepad++在行首行尾添加字符
一.行首.行尾添加字符 1.使用快捷键 Ctrl+H 2.^行首.$行尾 3.查找模式--正则表达式 二.举例说明: 1.使用快捷键Ctrl+H,在查找目标中写^,然后选择正则表达式,点击全部替换. ...
- linux shell sed 添加空行
一.每行前后添加空行 1.每行后面添加一行空行: sed G tmp 每行前面添加一行空行: sed '{x;p;x;}' tmp 2.每行后面添加两行空行: sed 'G;G' tmp 每行前面添加 ...
- linux shell sed i,Linux Shell学习-sed命令详解
(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准 ...
- sed 在行首或者行尾添加文本
sed在行首添加注释 匹配1111的行 并在行首添加# 注释 sed -i '/1111/s/^/#/' /root/test.sh 匹配1111的行 并在行尾添加 # sed -i '/1111/s ...
最新文章
- 2020-12-06
- ComplexHeatmap()函数解析
- Redis集群——利用Gearman在Lnmp架构中做MySQL的缓存服务器
- CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
- 【PowerBi】Power Query导入Excel数据
- QML提供的JavaScript主机环境
- 5年 Python 功力,总结了 10 个开发技巧
- python 解压zip文件_Python 解压缩文件详解
- linux中死锁的概念,【Linux】死锁概念总结
- UltraISO v 9.6 单文件版
- 关于图书馆占座问题的调查
- 基于BP神经网络的数字识别
- 100个java项目_我如何在100天内建立​​100个项目
- 快递单号的正则提取试
- QT5.7操作word
- 零基础学Python6
- Stm32 HAL_UART_Receive读取不到数据的问题
- 气体润滑轴承matlab分析,轴承润滑常见的7种方式及其优缺点
- MITRE ATTCK框架
- Java Calendar 获得某一天的零时
热门文章
- 联想电脑黑屏但电源键亮着的解决办法
- mysql sending data 耗时_mysql查询语句出现sending data耗时解决
- 2021-05-11PLC通信Libnodave-明天继续
- 电脑c盘格式化,如何恢复C盘文件?
- MAC系统查看端口,并关闭端口占用
- PS常用的三种抠图方法,能应对99%的抠图场景
- 【OpenGL】OpenGL帧缓存对象(FBO:Frame Buffer Object)
- JAVA计算机毕业设计政府会议管理系统Mybatis+系统+数据库+调试部署
- [江枫]In Memory Undo与logical standby database
- 百度糯米 android,百度糯米安卓版|百度糯米for android官方手机版 6.7.1 - 系统天堂...