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 命令的高级用法 的相关文章

  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • 匹配模式后添加行[重复]

    这个问题在这里已经有答案了 我有一个文件说test具有以下值 Linux Solaris Fedora Ubuntu AIX HPUX 如何在匹配 AIX 的行后面添加一行系统主机名 如果我做 echo hostname gt gt tes
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐

  • 求二叉树中最大和的路径(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 保存