阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux基础教程之文件三剑客sed命令用法详解

370次阅读
没有评论

共计 1841 个字符,预计需要花费 5 分钟才能阅读完成。

sed 是一种流编辑器,它是文本处理中非常强大的工具,能够完美的配合正则表达式使用,用法简单实用,非常灵活。
        工作原理:sed 命令处理文本时,把当前处理的行存储在一个临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

在 sed 高级编辑命令中,还会调用另一个临时缓冲区,称为“保持空间”(hold space),在模式空间中为处理完的行可以临时存储在保持空间中,在临时空间接着处理下一行,然后在将保持空间中的行重新存储在临时空间中做后续处理,这样就使得 sed 命令变的功能得更为强大。

sed 命令不仅可以查看,筛选文本内容,还可以对一个或多个文本进行编辑,更改,简化对文件的反复操作。Linux 基础教程之文件三剑客 sed 命令用法详解

        sed 中有自己的脚本命令 ,配合这些脚本文件,sed 可以实现许多对文本的索引,编辑功能。

sed 命令常用选项:sed [option]‘script’file

option:

-n:不输出模式空间内容到屏幕,即不自动打印
    -e:多点编辑
    -f:/ PATH/SCRIPT_FILE:从指定文件中读取编辑脚本
    -r:支持使用扩展正则表达式
    -i:修改源文件
    -i.bak:备份文件并原处编辑
    -v:打印版本和版权信息。

script:’地址 + 命令’

地址:

  1. )没有地址:默认对全文进行处理。
  2. )单地址:
    X:指定的行
    /pattern/:被匹配到的每一行
  3. )地址范围:
    X1,X2:选取第 X1 行到 X2 行之间的行
    X1,+X2:选取第 X1 行之后的 X2 个行
    /pat1/,/pat2/:选取 pat1 第一次匹配到的行到 pat2 第一次匹配到的行之间的行
    X,/pat1/:选取 X 第一次匹配到的行到 pat1 第一次匹配到的行
  4. )X1~X2:步进
    1~2:从 1 开始,步进为 2(奇数行)
    2~2:从 2 开始,步进为 2(偶数行)

命令:

d:删除模式空间匹配的行,并立即启用下一轮循环
    p:打印当前模式空间内容,追加到默认输出之后
    a []text:在指定行后面追加文本。支持使用 n 实现多行追加
    i []text:在行前面插入文本
    c []text:替换行为单行或多行文本
    w:保存模式匹配的行至指定文件
    r:读取指定文件的文本至模式空间中匹配到的行后
    =:为模式空间中的行打印行号
    !:模式空间中匹配行取反处理
    s/X/X/g:查找替换, 支持使用其它分隔符,s@@@,s###
    y/XX/XX/:检索所有匹配的项,替换为对应的字符 

高级编辑命令:

P:打印模式空间开端至 n 内容,并追加到默认输出之前
    h:把模式空间中的内容覆盖至保持空间中
    H:把模式空间中的内容追加至保持空间中
    g:从保持空间取出数据覆盖至模式空间
    G:从保持空间取出内容追加至模式空间
    x:把模式空间中的内容与保持空间中的内容进行互换
    n:读取匹配到的行的下一行覆盖至模式空间
    N:读取匹配到的行的下一行追加至模式空间
    d:删除模式空间中的行
    D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本
    #:把注释扩展到下一个换行符以前。

案列

基本用法:

首先我们自己创建了一个方便查看效果的文件 newf
Linux 基础教程之文件三剑客 sed 命令用法详解

 

基本筛选功能:

  1. 打印一到 3 行
    Linux 基础教程之文件三剑客 sed 命令用法详解
  2. 查看文件带有 b 的行到带有 a 的行
    Linux 基础教程之文件三剑客 sed 命令用法详解
  3. 打印奇数行
    Linux 基础教程之文件三剑客 sed 命令用法详解
  4. 打印带有字母 a 或带有字母 b 的行
    Linux 基础教程之文件三剑客 sed 命令用法详解
  5. 把所有 b,c 都换成 a
    Linux 基础教程之文件三剑客 sed 命令用法详解
    如果不带 g 每行只会替换第一个(默认)匹配到的字符
    g 可以换成数字,表示替换匹配到的第几个字符
    可以将字符替换为 空 表示删除
  6. 在第 3 行前一行插入字符
    Linux 基础教程之文件三剑客 sed 命令用法详解
  7. 在第 3 行后插入字符
    Linux 基础教程之文件三剑客 sed 命令用法详解
  8. 将每行第二个字符删除
    Linux 基础教程之文件三剑客 sed 命令用法详解
    如图所示,所有的空格被删掉。- r 选项支持扩展正则表达式(相当于 sed‘s/^(.)(.)/1/’)另一种方式 sed‘/.//2’newfsed”
  9. 把所有 abc 替换为 ABC
    Linux 基础教程之文件三剑客 sed 命令用法详解
    - y 选项是把前面匹配的项全部对应替换为后面的字符

进阶用法:

  1. 将 1 行放到 3 行后面
    Linux 基础教程之文件三剑客 sed 命令用法详解
    h:将模式空间的内容覆盖保持空间中
    G:将保持空间内容追加到模式空间中
  2. 在每行后面添加 1 个空行
    Linux 基础教程之文件三剑客 sed 命令用法详解
    保持空间默认有一个空白行
  3. 把 1 到 4 行放在 5 行后面
    Linux 基础教程之文件三剑客 sed 命令用法详解
    1h:覆盖掉保持空间中的空白行
    1,4d:删除最前面的 4 行
  4. 将第 1 行替换到第 3 行
    Linux 基础教程之文件三剑客 sed 命令用法详解

 

总结: 通过一些简单的例子,可以看出 sed 命令简单,但是功能复杂多样,需要通过大量的练习才能熟练掌握。sed 命令在运用中十分重要,它可以批量搜索,显示,修改文本内容,这是必须要学会,并熟练使用的工具。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计1841字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7897888
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
使用1Panel面板搭建属于你的AI项目环境

使用1Panel面板搭建属于你的AI项目环境

使用 1Panel 面板搭建属于你的 AI 项目环境 在 AI 项目越来越火的今天,很多朋友都想自己动手搭建一...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...