sed 命令的高级用法

2023-11-08

编辑命令:

d:删除

p:显示模式空间的内容

a \text:在行后面追加文本;支持使用\n实现多行追加;

i  \text:在行前面插入文本;支持使用\n实现多行插入;

c \text:替换行为单行或多行文本;

w /path/to/somefile:保存模式空间匹配到的行至指定文件中;

r /path/from/somefile:读取指定文件的文本流至模式空间中匹配到的行后;

=:为模式空间中的行打印行号;

!:取反条件;

s///:支持使用其它的分隔符,s@@@,s###

替换标记:

g:行内全局替换;

p:显示替换成功的行;

w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;

例:

1.删除/boot/grub/grub.conf文件中所有以空白开头的行行首的空白字符:

sed 's@^[[:space:]]\+@@' /etc/grub2.cfg

2.删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符;

sed 's@^#[[:space:]]\+@@' /etc/fstab

3.echo一个绝对路径用sed命令取出基名和目录名

echo “/etc/sysconfig” | sed 's@[^/]\+/\?$@@'

高级编辑命令:

h:把模式空间中的内容覆盖至保持空间中;

H:把模式空间中的内容追加至保持空间中;

g:从保持空间取出数据覆盖至模式空间;

G:从保持空间取出数据追加至模式空间;

x:把模式空间的内容与保持空间中的内容进行互换;

n:读取匹配到的行的下一行至模式空间;

N:追加匹配到的行的下一行至模式空间;

d:删除模式空间中的行;

D:删除多行模式空间中的所有行。

  -- 显示偶数行
  -- sed -n 'n;p' FILE  或者 sed '2~2p' FILE
  -- 逆向显示文件内容
  -- sed '1!G;h;$!d' FILE 或者 sed -n '1!G;h;$p' FILE
  -- 显示文件后两行
  -- sed '$!N;$!D' FILE
  -- 取出文件最后一行
  -- sed '$!d' FILE
  -- 每行加空白行
  -- sed 'G' FILE
  -- 多的空白行合并成一个空白行
  -- sed '/^$/d;G' FILE
  -- 显示奇数行: sed 'n;d' FILE

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sed 命令的高级用法 的相关文章

  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 如何根据标签将单个 XML 文件拆分为多个

    我有一个带有标签的 XML 文件 我想像这样分割文件
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags

随机推荐

  • 求二叉树中最大和的路径(C语言实现)

    目录 1 题目概述 2 题目解析 3 题目代码 4 样例展示 5 题目总结 1 题目概述 假设二叉树中的所有节点值为int类型 采用二叉链表存储 设计递归算法求二叉树bt中从根结点到叶子结点路径和最大的一条路径 例如 对于下图所示的二叉树
  • 成为大厂offer收割机是怎样一种体验?

    一 现状 市场红利正盛 人才短板暴露 计算机的发展历程已经走过了大半个世纪 在当前的互联网 时代下 中国开发者市场正在迎来三大红利 全民编程 行业升级 技术大生态 人人都会编程 家家都是技术公司 全行业数字化升级 面对大量的需求 目前IT人
  • 用户画像常见应用场景+技术实现

    导读 今天和大家分享的主题是用户画像的场景与技术实现方案 主要分三大部分 用户画像常见应用场景 画像产品功能 技术实现方案 01 常见应用场景 1 画像常见的应用场景 不同行业业务属性不同 能采集到的数据源也不同 对画像的应用场景有不同的需
  • 代码随想录算法训练营第一天

    文章目录 数组704 二分查找 题目 难度 示例 算法 二分查找法 循环不变量 两种写法 疑难点分析 算法复杂度分析 数组27 移除元素 题目 难度 示例 算法 暴力 双指针 数组704 二分查找 梦开始的地方 day1 2023 4 19
  • 基于MATLAB的图片中字符的分割与识别

    基于MATLAB的字符的分割与识别 摘 要 本文主要介绍字符识别的基本原理 并且利用MATLAB工具软件实现图片中字符的分割和识别 对于满足一定要求的图片可以实现字符的分割与识别 通过图像读取 图像预处理 图像投影 字符分割 字符识别五个步
  • 一维数组部分实验

    学习目标 1 理解数组的概念 掌握数组的定义及其存储结构 2 掌握一维数组的输入 输出及初始化的方法 3 掌握一维数组的使用 4 掌握与数组有关的算法 学习内容 1 编写程序 将10个整型数2 4 6 18 20赋予一个数组 然后输出该数组
  • 【C语言】初识指针

    C语言 初识指针 一 指针是什么 二 指针和指针类型 1 指针 整数 2 指针的解引用 三 野指针 1 野指针成因 2 如何规避野指针 四 指针运算 五 二级指针 七 指针数组 个人主页 库库的里昂 CSDN新晋作者 欢迎 点赞 评论 收藏
  • c的按位取反运算符(~) 与逻辑逻辑(!)

    位运算 位运算的运算分量只能是整型或字符型数据 位运算把运算对象看作是由二进位组成的位串信息 按位完成指定的运算 得到位串信息的结果 位运算符有 按位与 按位或 按位异或 按位取反 其中 按位取反运算符是单目运算符 其余均为双目运算符 位运
  • ffmpeg 采集音频数据

    音视频数据采集的步骤 设备注册 设置对应的采集方式 avfoundation dshow alas 打开设备 具体的例子 include
  • 什么是导航与位置服务器,GPS导航和GPS定位仪与GPS定位器的区别在哪?

    也许很多人时常都能听到GPS定位器 GPS导航 GPS定位仪这三个词 但都不是很了解GPS定位器 GPS导航和GPS定位仪这三者间的区别 往往都很模糊 那么 这三者到底分别是什么设备 又有哪些我们不知道的区别呢 一 GPS导航 但凡是自己有
  • 学成在线笔记+踩坑(2)——【内容模块】课程基础查询,swagger+数据库字典+Httpclient+跨域

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 java黑马笔记 目录 1 内容模块 需求分析 2 内容模块 模块工程
  • jdbc链接mysql8的url

    jdbc链接mysql8的url 使用jar或者maven依赖不同 java与mysql8 0连接Jdbc驱动的配置参数 驱动 driver com mysql cj jdbc Driver 字符串 jdbc url jdbc mysql
  • redis 缓存击穿 看一篇成高手系列3

    什么是缓存击穿 在谈论缓存击穿之前 我们先来回忆下从缓存中加载数据的逻辑 如下图所示 因此 如果黑客每次故意查询一个在缓存内必然不存在的数据 导致每次请求都要去存储层去查询 这样缓存就失去了意义 如果在大流量下数据库可能挂掉 这就是缓存击穿
  • 自己实现c++ list模板类,亲测可用

    双向链表模板类 dlist h ifndef DLIST H define DLIST H include
  • 秋招-准备计划

    秋招 准备计划 基本信息 时间 9月 10月 岗位 java后端开发 目标 中厂 大厂 有高用户量的项目 企业优先 准备 简历 基本信息 获奖情况 项目经历 实习经历 笔试 算法与数据结构 面试 Java篇 基本知识 JVM JUC多线程
  • SQLserver分页 高效率

    SQL Server 存储过程的分页 这个问题已经讨论过几年了 很多朋友在问我 所以在此发表一下我的观点建立表 CREATE TABLE TestTable ID int IDENTITY 1 1 NOT NULL FirstName nv
  • 什么是云计算,云计算的基本原理是什么?

    云计算 cloudcomputing 分布式计算技术的一种 其最基本的概念 是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序 再交由多部服务器所组成的庞大系统经搜寻 计算分析之后将处理结果回传给用户 透过这项技术 网络服务提供者可
  • 在偏远乡村感受中国电信优厚服务

    春节期间 笔者在家使用中国电信天翼上网卡的过程中发现 目前中国电信的3G网络覆盖在偏远乡村还不是很到位 不过在3G市场的激烈竞争中 运营商的服务意识却有着明显的提升 笔者从北京回家过年 在江西南昌市的一家电信营业厅购买了3G上网卡 当时得知
  • Vue3引用Dplayer播放器播放m3u8,hls播放协议

    一 安装 npm安装Dplayer npm install S Dplayer yarn安装Dplayer yarn add Dplayer 播放协议为 hls 安装hls npm install hls js S 二 代码 我用的是vue
  • sed 命令的高级用法

    编辑命令 d 删除 p 显示模式空间的内容 a text 在行后面追加文本 支持使用 n实现多行追加 i text 在行前面插入文本 支持使用 n实现多行插入 c text 替换行为单行或多行文本 w path to somefile 保存