sed编辑器

Linux文本三剑客: grep sed awk

grep(查) ,按行处理

sed(行编辑器),按行处理

sed是一种流编辑器,每一次处理内容,只有确认,才会生效,如果不确认,只是把模式空间的临时数据展示给用户,然后删除

按照文本的行,一行一行向下处理,只到文件的最后一行

默认情况下,sed都是在模式空间执行,因此原文件不会发生变化,要变化怎么办??

sed的操作格式

sed -e "操作" 文件1 文件2

sed -e "操作1;操作2" 文件

-e:指定命令来处理输入的文本文件,只有一个操作,-e可以省略。多个指令才会用-e

-f:用特点的脚本文件来处理输入的文件

-i:立即生效

-n:仅显示script 处理后的结果

sed -i 立即生效 慎用

sed的操作符:

p:打印

=:只打印行号

打印:

sed -e 'p' test.txt

sed自己还有一个默认输出,再加上打印,一共两行

sed -ne ‘p’ test.txt

取消默认输出

sed -n '2p' test.txt

输出指定行的内容,只有第二行

sed -n '=' test.txt

只显示行号

sed -n '=;p' test.txt

显示行号和内容

sed -n '$p' test.txt

打印最后一行

sed -n '1,3p' test.txt

第一行到第三行

sed -n '1p;2p' test.txt

第一行和第二行

sed -n '1p;$p' test.txt

sed -n -e '1p' -e '$p' test.txt

第一行到最后一行的两种写法

sed -n 'n;p' test.txt

n在p前面,跳过当前一行,打印下一行 偶数行

p在前面,则打印当前一行,跳下一行继续使用 奇数行

文本内容过滤-----sed

sed -n '/xx/p' test.txt

xx为需要过滤的内容

使用正则表达式过滤

sed -n '/^root/p' /etc/passwd

用正则表达式过滤root开头的行

sed -n '/bash$/p' /etc/passwd

用正则表达式过滤bash结尾的行

sed -n '4,/bash$/p' /etc/passwd

第四行到第一个bash

sed使用扩展正则表达式,

sed -r 表示可以使用扩展正则。{n} {n,} {n,m} {,m}

思考题:

1.包含两个99:的所在行

sed -nr '/(99:){2}/p' /etc/passwd

2.打印所有要么是以root开头,要么是以bash为结尾的行,打印

sed -nr '/^root|bash$/p' /etc/passwd

sed删除文件:

现在有一个文件,文件名我想保留,但是原有内容我要删除,免交互删

方法一

方法二

"d":操作符,删除的意思,对行操作

删除指定行

sed -n '3d;p' test.txt

删除第五行到最后一行

sed -n '5,$d;p' test.txt

除了一到四,其余删除(!取反)

sed  -n '1,4!d;p' test.txt

一到六行删除(包括1和6)

sed '/one/,/six/d' test.txt

过滤空行

cat test.txt | sed '/^$/d'

我们用grep也可以实现

sed 修改替换功能

操作符

s:替换字符串

意思为替换第几个出现的root,然后替换

sed -n 's/root/test/gp' /etc/passwd 全量替换

思考题

1.以root开头处理,把开头为空的替换成# /etc/passwd

sed -n '/^root/ s/^/#/gp' /etc/passwd

2.对字母字符进行大小写替换

l&:转换为小写的特殊符号,在前面加上转义符才可以

sed 's/[A-Z]/\l&/g' test.txt

把小写换成大写

u&:转换成大写的转移符号

u换成大写的U,然后加上g就可以全部换成大写

c:整行替换

sed '/one/c 22' test.txt

思考题:通过ifconfig修改ip:

cat ifcfg-ens33 | sed '/IPADDR/c IPADDR=1.1.1.1'

y:单字符替换,替换前后的字符长度要保持一致

sed 'y/on/12/' test.txt

将o替换成1,n替换成2

前后长度要保持一致,若后者数量多余前者,会报错

sed--增

a:在匹配行的下一行添加内容

sed '/three/a zzr' test.txt

i:在匹配行的上一行添加内容

sed '/three/i 哈哈哈' test.txt

r:可以从其他文件读取内容,然后在匹配行的行后添加

可以直接在文本末行添加

sed '$a 123' test.txt

sed当中字符串分组询问

用脚本运行   -f

将空格替换为下划线

命令文件

处理对象为456.txt

思考题:过滤文件中的数字

当然。用grep一步就可以完成:

总结:

sed可以增,删,改,查

sed也可以结合正则表达式,但是sed的最主要作用就是改,增

使用sed命令时注意一点:大文件一定要分隔之后再交给sed处理

搭配扩展正则:sed -r {n} {n,m} {,m} 可以不需要加\

使用sed -i 立即生效,要注意事先做好测试,还要做好备份

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/145500.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI视野·今日Robot 机器人论文速览 第四十期】Mon, 25 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 25 Sep 2023 Totally 36 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚CloudGripper, 一套云化的机器抓取人数据采集系统,包含了32个机械臂的集群。(from KTH Royal Institute of Te…

船舶单独安装的双频GNSS的PPP解算

最近我们在船舶上单独安装了一套双频GNSS,通过PPP解算用来验证GPS验潮的可能性。 GNSS观测文件是长格式:IGS000USA_R_20231920000_01D_01S_MO.rnx ​编辑​ 观测时间为2023年7月11日(GPS时间)。 从ftp://igs.ign.fr/pub/igs/pr…

JAVA 获得特定格式时间

0 背景 我们有时要获取时间,年月日时分秒周几,有时要以特定的格式出现。这时就要借助 SimpleDateFormat 或者 DateTimeFormatter。有时要某个月份有多少天需要借助 Calendar。所以有必要了解一些知识。 1 SimpleDateFormat simpledateFormat 线程不安全…

机器人中的数值优化(十九)—— SOCP锥规划应用:时间最优路径参数化(TOPP)

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

PyTorch - 模型训练损失 (Loss) NaN 问题的解决方案

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/133378367 在模型训练中,如果出现 NaN 的问题,严重影响 Loss 的反传过程,因此,需要加入一些微小值…

aarch64 平台 musl gcc 工具链手动编译方法

目标 手动编译一个 aarch64 平台的 musl gcc 工具链 musl libc 与 glibc、uclibc 等,都是 标准C 库, musl libc 是基于系统调用之上的 标准C 库,也就是用户态的 标准C 库。 musl libc 轻量、开源、免费,是一些 操作系统的选择,当前 Lite-OS 与 RT-Smart 等均采用自制的 mu…

Cannot download sources:IDEA源码无法下载

问题 Swagger的相关包,无法看到注释; 在class文件的页面,点击下载源码,源码下载不了,IDEA报下面的错误。 报错 Cannot download sources Sources not found for: io.swagger.core.v3:swagger-annotations:2.2.9 解决…

asp.net core automapper的使用

1.安装automapper的nuget包 AutoMapper.Extensions.Microsoft.DependencyInjection 2.创建需要映射的类和转换后的类 public class studto{public int sn { get; set; }public string name { get; set; }public string sex { get; set; }public int age { get; set; }public s…

c#设计模式-结构型模式 之装饰者模式

🚀介绍 在装饰者模式中,装饰者类通常对原始类的功能进行增强或减弱。这种模式是在不必改变原始类的情况下,动态地扩展一个对象的功能。这种类型的设计模式属于结构型模式,因为这种模式涉及到两个类型之间的关系,这两个…

幂级数和幂级数的和函数有什么关系?

幂级数和幂级数的和函数有什么关系? 本文例子引用自:80_1幂级数运算,逐项积分、求导【小元老师】高等数学,考研数学 求幂级数 ∑ n 1 ∞ 1 n x n \sum\limits_{n1}^{\infty}\frac{1}{n}x^n n1∑∞​n1​xn 的和函数 &#xff…

视频监控/视频汇聚/安防视频监控平台EasyCVR配置集群后有一台显示离线是什么原因?

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…

【计算机网络】因特网中的电子邮件

文章目录 简单邮件传送协议SMTP邮件访问协议POP3IMAPHTTP 参考资料 电子邮件为异步通信媒介 因特网电子邮件系统 电子邮件系统的三个构件:用户代理、邮件服务器、邮件发送和读取协议 用户代理 User Agent 即UA 电子邮件客户端软件,用户与电子邮件系统的接…

面试记录_

1&#xff1a;面试杉岩数据&#xff08;python开发&#xff09; 1.1.1 选择题 for(int i0;i<n;i){for(int j0;j<n;jji) } }O(n) * (O(0) O(n/1) O(n/2) O(n/3) ... O(n/n)) 在最坏情况下&#xff0c;内部循环的迭代次数为 n/1 n/2 n/3 ... n/n&#xff0c;这是…

【QT开发(6)】0926-QT 中加入 fastDDS 通信库的程序使用说明

在智能驾驶中&#xff0c;DDS有可能被广泛使用&#xff0c;因此推出这篇说明教程。 1、基于【QT开发&#xff08;5&#xff09;】教程的项目文档进行开发 2、安装DDS 查看《【eProsima Fast DDS&#xff08;1&#xff09;】安装eProsima Fast DDS》 至少安装: foonathan_m…

论文笔记(整理):轨迹相似度顶会论文中使用的数据集

0 汇总 数据类型数据名称数据处理出租车数据波尔图 原始数据&#xff1a;2013年7月到2014年6月&#xff0c;170万条数据 ICDE 2023 Contrastive Trajectory Similarity Learning with Dual-Feature Attention 过滤位于城市&#xff08;或国家&#xff09;区域之外的轨迹 过…

AOP:分页参数统一校验

需求说明 为了保证系统的安全性&#xff0c;需要对所有的 查询列表 接口&#xff0c;添加分页参数&#xff0c;并对分页参数进行校验&#xff0c; &#xff0c;保证参数的合法性。 比如&#xff0c; pageSize&#xff08;每页显示条数&#xff09;&#xff0c;如果不做校验&a…

完整指南:如何使用 Node.js 复制文件

文件拷贝指的是将一个文件的数据复制到另一个文件中&#xff0c;使目标文件与源文件内容一致。Node.js 提供了文件系统模块 fs&#xff0c;通过该模块可以访问文件系统&#xff0c;实现文件操作&#xff0c;包括拷贝文件。 Node.js 中文件拷贝方法 在 Node.js 中&#xff0c;有…

Python3数据科学包系列(一):数据分析实战

一: 数据分析高级语法&#xff1a;序列(Series) # -*- coding:utf-8 -*-from pandas import Seriesprint(-------------------------------------序列Series定义与取值-------------------------------------------) print("""Series序列可以省略,此时索引号默…

What is an HTTP Flood DDoS attack?

HTTP 洪水攻击是一种针对 Web 和应用程序服务器的第 7 层分布式拒绝服务 &#xff08;DDoS&#xff09; 攻击。HTTP 洪水攻击通过使用 HTTP GET 或 HTTP POST 请求执行 DDoS 攻击。这些请求是有效的&#xff0c;并且针对可用资源&#xff0c;因此很难防范 HTTP 洪水攻击。 匿名…

【AI视野·今日Robot 机器人论文速览 第四十四期】Fri, 29 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 29 Sep 2023 Totally 38 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;NCF,基于Neural Contact Fields神经接触场的方法实现有效的外部接触估计和插入操作。 (from FAIR ) 操作插入处理结果&am…