IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> shell脚本(六)sed命令行编辑器 -> 正文阅读

[开发工具]shell脚本(六)sed命令行编辑器

sed编辑器被称为流编辑器。sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在命令文本文件中。sed命令并不会影响原本文件,只会重新把改变的内容输出,如果需要改变原本内容需要用-i选项,sed -i

sed命令格式

sed [options] [script] [file]

修改文本内容

#s命令会将斜杠(/)指定的第二个字符串替换第一个字符串 
echo "this is text" | sed 's/this/that/' 
#修改文件内容,默认只会替换每行中出现的第一处 
sed 's/this/that/' /home/text 
#多命令修改内容,通过-e选项,通过分号(;)分割 
sed -e 's/this/that/;s/is/iss/' /home/text

默认只会替换没行出现的第一处,如果想要多替换需要使用替换标记

#格式。替换标记放在最后 
s/pattern/replacement/flags

四种可用的替换标记

1、数字,表明新文本将替换第几处模式匹配的地方

2、g,表明新文本将会替换所有匹配的文本

3、p,表明原先行的内容要打印出来

4、w file ,将替换的结果写到文件中

#替换文件中内容命令格式:sed 's/zqq/httlo/flags' filepath 
#替换第二处出现的字符串 
echo "zqq zqq test" | sed 's/zqq/hello/2' 
#替换所有匹配字符串 
echo "zqq zqq test" | sed 's/zqq/hello/g' 
#替换行内第一处匹配的字符串,然后并打印原字符串,-n选项 
echo "zqq zqq test" | sed -n 's/zqq/hello/p' 
#将替换结果写到文件中,只会把有匹配内容的字符串写到文件 
echo "zqq zqq test" | sed "s/zqq/hello/w /home/text"

替换分隔符

默认情况下sed命令是以反斜杠为分隔符,在linux中反斜杠用到的地方很多,在文本内容有反斜杠时需要用反斜杠(\)来转义,看起来很不方便,sed编辑器允许选择其他字符来作为替换命令中的分隔符

#用!来替代/ 
echo "zqq/zqq hello" | sed 's!/zqq/zqq!zqq!g'

删除命令

sed编辑器可以删除固定的行

#删除文件第三行 
sed '3d' /home/text 
#删除指定区间,第二行,第三行 
sed '2,3d' /home/text 
#删除包含指定内容的行 
sed '/hello world/d' /home/text

插入和附加文本

sed编辑器允许向数据流插入喝附近文本。插入(i)会在指定行前增加一个新行。附加(a)会在指定行后增加一个新行

#将一个新行插入到数据第三行前 
sed '3i\hello world' /home/text 
#将新行插入第三行后 
sed '3a\hello world' /home/text 
#将新行插在末尾 
sed '$a\hello world' /home/text

修改行

修改命令(c)允许修改数据流中整行文本的内容

#修改第三行内容 
sed '3c\hello world' /home/text 
#修改匹配内容的所有文本行,把包含zqq的内容修改修改成hellworld 
sed '/zqq/c\hello wolrd' /home/text 
#将多行文本替换指定文本,将2,3行替换成hello wolrd 
sed '2,3c\hello world' /home/text

转化命令

转化命令(y)是可以处理单个字符的sed编辑器命令

#第一位7会替换前面的1,8会替换2,注意123和789不是一个字符,而是对应的位替换对应的单个字符, 
#如果前后字符数不相等会产生一条错误信息 
echo 'y/123/789/' /home/text 
#替换1,2,3 
echo "hello 1,2,3" | sed 'y/123/789/'

打印内容

#打印匹配zqq的行 
sed -n '/zqq/p' /home/text 
#打印第2行到第5行 
sed -n '2,5p' /home/text
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:38:53  更:2022-09-13 11:42:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:23:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码