当前位置: 首页 > news >正文

sed 流式编辑器

使用方式:

1,前置指令 | sed 选项  定址符指令

2,sed 选项  定址符指令   被处理文档

选项:

-n 屏蔽默认输出

 -i写入文件 

 -r支持扩展正则

指令:

p输出 

 d删除 

 s替换

    sed -n '1p' user        //输出第1行

   sed -n '2p' user    //输出第2行

   sed -n '3p' user    //输出第3行

   sed -n '2,4p' user   //输出第2~4行

   sed -n '2,+1p' user  //输出第2行以及后面1行

   sed -n '2p;4p' user  //输出第2行,第4行

sed -n '/^root/p' user  //在sed中使用正则表达式输出以root开

头的行

   grep "^root" user  //效果同上

 egrep"^root|^bin" user  //找root或者bin开头的行 

 sed -nr '/^root|^bin/p' user  //在sed中查找,-r使用扩展正

则,效果同上

   sed -n '=' user    //查看所有行号

 sed -n '$=' user   //查看最后一行的行号,相当于查看文档

总共有几行

   

  sed  '1d' user   //删第1行

  sed  'd' user   //删所有

  sed  '3d' user  //删第3行

  sed  '2,5d' user   //删2~5行

  sed  '4,+2d' user  //删4行以及后面2行

  sed  '1d;3d' user   //删第1行,第3行

sed  '$d' user   //删除最后一行

  sed -n '$p' user  //查看最后一行

sed -n '1!p' user   //查看除了第1行以外的行, !代表取反

sed中的替换,使用 s/old/new/

vim test.txt    //准备素材,写入下列内容

2017 2011 2018

2017 2017 2024

2017 2017 2017

sed 's/2017/8888/' test.txt  //替换所有行的第1个2017为8888

sed '1s/2017/8888/' test.txt  //替换第1行的第1个2017

sed '2s/2017/8888/' test.txt  //替换第2行

sed '1,2s/2017/8888/' test.txt  //替换1~2行

sed 's/2017/8888/2' test.txt   //替换所有行的第22017

sed 's/2017/8888/3' test.txt   //替换所有行的第3个2017

sed '/2011/s/2017/8888/' test.txt  //替换有2011的行的第12017

sed 's/2017/8888/g' test.txt   //替换所有行的所有个

sed -n 's/root/6666/p'  /etc/passwd  //替换每行第1个root,并只显示被替换的行

sed -n 's/root/6666/2p'  /etc/passwd  //替换每行第2个root,并只显示被替换的行

sed -n 's/root/6666/gp'  /etc/passwd  //替换每行的所有root

sed '3s/2017/8888/;3s/2017/8888/' test.txt  //替换第3行的第1个和第2个2017

------------------------------------------------------------

尝试将user文档中的/bin/bash替换成/sbin/sh

sed 's//bin/bash//sbin/sh/' user    //常规手段替换,内容会与替换冲突,替换失败

sed 's/\/bin\/bash/\/sbin\/sh/' user  //使用\转义符号,可以成功,但不方便

sed 's!/bin/bash!/sbin/sh!' user   //更改替换的间隔符号是最理想方法

sed 's(/bin/bash(/sbin/sh(' user   //效果同上

Seds替换的高级应用

1)删除文件中每行的第二个、最后一个字符

sed 's/.//2;s/.$//' test    分两个步骤完成,中间用分号

隔开,第一步将每行的第二个任意字符替换成空,第二

步将每行的最后一个任意字符替换成空即可

2)删除文件中所有的数字

sed -i 's/[0-9]//g' test    先找到任意数字,然后都替换成空

3)将文件中每行的第一个、倒数第1个字符互换

echo abc > abc            //创建素材

sed -r 's/(a)(b)(c)/\3\2\1/' abc  //替换abc时复制每一个字符,后面替换的内容用\数字粘贴,可以任意调换位置

echo xyz >> abc   //追加内容

sed -r 's/(a)(b)(c)/\3\2\1/' abc  //再用之前的方法无法替换第2行

sed -r 's/(.)(.)(.)/\3\2\1/' abc  //将具体字符用 . 替代即可将文档中的xyz修改成xyaz时,上述方案失灵

sed -r 's/^(.)(.*)(.)$/\3\2\1/' abc   //再次升级,分别找到第1个字符和最后1个字符,中间可以是任意

sed -r 's/^(.)(.*)(.)$/\3\2\1/' test   //达成需求

4)为文件中每个大写字母添加括号

sed -r 's/([A-Z])/(\1)/g' test  //先找到任意大写字母,然后保留,最后替换成带括号的状态

练习:

编写脚本,安装httpd服务,使用82号端口

#!/bin/bash

yum -y install httpd

sed -i '/^Listen 80/s/80/82/' /etc/httpd/conf/httpd.conf   //找到有Listen 80开头的行,替换80为82

systemctl restart httpd

运行脚本之后,使用curl 192.168.4.7:82测试或者火狐浏览器192.168.4.7:82

要关闭selinux与防火墙

setenforce 0    //如果脚本执行之前没关闭selinux,会报错

systemctl stop firewalld

--------------------------------------------------------------------

sed中除了常用的p d s 三个指令,还有a行下追加  i行上添加  c替换整行

sed 'a 666' user  //在所有行下追加666

sed '1a 666' user  //第1行下追加666

sed 'i 666' user   //所有行上添加666

sed '3i 666' user  //第3行上添加666

sed '2a 666' user   //第2行下追加666

sed 'c 666' user   //所有行替换成666

sed '/root/c 666' user  //找到有root的行替换成666

编写脚本,找到系统使用bash的账户名,然后按照“用户名 --> 密码” 的格式存储在一个文件中

"\s"可以匹配tab键和空格所敲出来的空格。

"\w"匹配数字、字母、下划线

sed的其它指令:

”a“行下追加,逐行处理,如果只处理第一行就用”1a“

”i“行上添加

”c“替换整行

相关文章:

sed 流式编辑器

使用方式: 1,前置指令 | sed 选项 定址符指令 2,sed 选项 定址符指令 被处理文档 选项: -n 屏蔽默认输出 -i写入文件 -r支持扩展正则 指令: p输出 d删除 s替换 sed -n 1p user //输出第1行 sed -n…...

Linux shell编程学习笔记33:type 命令

目录 0 引言1 type 命令的功能和格式 1.1 type命令的功能1.2 type 命令的格式2 type命令用法实例 2.1用type命令查看shell内置命令(以echo命令为例)2.2 用type命令查看别名(以ls命令为例)2.3 用type命令同时查看shell内置命令和别…...

【数据结构】—红黑树(C++实现)

🎬慕斯主页:修仙—别有洞天 💜本文前置知识: AVL树 ♈️今日夜电波:Letter Song—ヲタみん 1:36━━━━━━️💟──────── 5:35 …...

内衣洗衣机和手洗哪个干净?高性价比内衣洗衣机推荐

通常来说,我们的内衣裤对卫生要求比较高,毕竟是贴身穿的,所以如果和一般的衣物一起洗,就怕会有细菌互相感染。所以很多用户为了内衣裤的卫生都会选择自己手动洗,但手洗一方面很费时间和人力,另一方面又很伤…...

TikTok与互动广告:品牌如何打破传统界限

随着数字时代的蓬勃发展,广告行业也经历了翻天覆地的变革。在这个变革的浪潮中,TikTok作为一款崭新的社交媒体平台,通过其独特的短视频形式为品牌提供了全新的互动广告机会。 本文将深入探讨TikTok与互动广告的结合,以及品牌如何…...

跟着Nature Communications学习Hisat-Trinity-PASA等分析流程

一边学习,一边总结,一边分享! 详细教程请访问: 组学分析流程 本期分析流程 Hisat2-SamtoolsTrinity_GG_denovoPASA… 本期教程文章 题目:Genomic insights into local adaptation and future climate-induced vulnerability of a keystone forest tree in East Asia H…...

Unity中Batching优化的动态合批

文章目录 前言一、动态合批的规则1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader,来测试动态合批1、我们选择模型的 Mesh…...

2022年第十一届数学建模国际赛小美赛B题序列的遗传过程解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 B题 序列的遗传过程 原题再现: 序列同源性是指DNA、RNA或蛋白质序列之间的生物同源性,根据生命进化史中的共同祖先定义[1]。DNA、RNA或蛋白质之间的同源性通常根据它们的核苷酸或氨基酸序列相似性来推断。显著的相…...

【Linux】静态库与动态库制作及运行原理

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 本篇导航 0. 静态库与动态库1. 制作与使用静态库2. 制作与使用动态库3. 动态库是如何被加载到内存?3.1程序地址空间 0. 静态库…...

工具站推荐

自己搭了一个文本工具站 TextTool,包含了常用的文本功能。 我自己比较常用 行转列、列转行、下划线替换的功能。 欢迎各位大佬提意见和建议...

【JS】toFixed()无法精准保留小数的解决方案

情景复现: 发现用 toFiexd() 四舍五入保留小数有时不是很精确,接下来用 a 8.0345,b8.045,举例如下: var a 8.035; console.log(a.toFixed(2)) // 8.04 var b 8.045; console.log(b.toFixed(2)) // 8.04 不难看出…...

vue3版本学习

1,响应式ref或者reactive const aa ref(hello) const bb reactive({ aa: hello, ss: workd }) 2,计算属性 响应式属性经过计算得到的值(ref),放到模板中,只会随着响应式author.books属性变化而变化 const autor …...

【WPF.NET开发】创建简单WPF应用

本文内容 先决条件什么是 WPF?配置 IDE创建项目设计用户界面 (UI)调试并测试应用程序 通过本文你将熟悉在使用 Visual Studio 开发应用程序时可使用的许多工具、对话框和设计器。 你将创建“Hello, World”应用程序、设计 UI、添加代码并调试错误。在此期间&#…...

视频智能分析国标GB28181云平台EasyCVR加密机授权异常是什么原因?

国标GB28181视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等。 近期有用户选择使用加密机进行EasyCVR授…...

Mysql安全之基础合规配置

一、背景 某次某平台进行安全性符合型评估时,列出了数据库相关安全选项,本文特对此记录,以供备忘参考。 二、安全配置 2.1、数据库系统登录时的用户进行身份标识和鉴别; 1)对登录Mysql系统用户的密码复杂度是否有要…...

前后端分离项目跨域请求

一、前端vue项目 在项目中创建request.js文件,添加以下内容 import axios from "axios"; const api axios.create({ //这里配置的是后端服务提供的接口baseURL: "http://localhost:8080/web-demo",timeout: 1000} ); export default api; …...

OpenEuler系统桌面终端设置字体

初始界面 终端的字体间距过大,阅读起来不方便。 调整终端字体 点击菜单,选择“配置文件首选项” 未命名 ---- 文本---- 勾选 自定义字体 ---- 选择 "DejaVu LGC Sans Mono"字体 你也可以根据自己的喜好,选择其他字体。 修改好了…...

repo常用命令解析(持续更新)

1 同步 1.1 将本地仓库更新到最新状态。它会从远程服务器下载最新的代码,并将本地仓库与之同步。如果本地仓库中已经存在某个项目,repo sync会自动检测本地仓库中该项目的版本,并将其更新到最新状态。 类似于git fetch和git merge命令组合使…...

关于小红书商单变现的一些答疑

AI小红书商单训练营也过去1个月了,今天给大家汇总几个常遇到的问题,希望对大家在运营过程中有所帮助。 1.账号封面是否要统一模版? 为了让账号主页呈现整洁美观的效果,建议统一封面设计,视频开头可以设置一个固定画面…...

使用 Kubernetes Agent Server 实现 GitOps

目录 温习 GitOps 极狐GitLab Kubernetes Agent 极狐GitLab GitOps workflow 极狐GitLab KAS 的配置 创建极狐GitLab agent 创建 agent token Kubernetes 上安装 agent(agentk) 极狐GitLab GitOps workflow 实践 写在最后 温习 GitOps GitOps …...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...