Linux文本三剑客sed

sed和awk

grep就是查找文本当中的内容,最强大的功能就是使用扩展正则表达式

sed

sed是一种流编辑器,一次处理一行内容。

如果只是展示,会放在缓冲区(模式空间),展示结束后,会从模式空间把结果删除

一行行处理,处理完当前行,才会处理下一行。直到文件的末尾。

sed的命令格式和操作选项:

sed -e '操作符 ' -e '操作符' 文件1 文件2

-e表示可以跟多个操作符,只要有一个操作,-e可以省略

sed -e '操作符1;操作符2' 文件1 文件2

选项:

-e:用于执行多个命令

-f:在脚本当中定义好了操作符,然后根据脚本内容的操作符对文件进行操作

-i:直接修改目标文件(慎用)

-n:仅显示script处理后的结果(不加-n,sed会有2个输出结果,加了-n之后就会把默认输出屏蔽,只显示一个结果)

p:打印结果

r:扩展正则表达式

s:替换,替换字符串

c:替换,替换指定行

y:替换,替换单个字符,多个字符替换必须和替换内容的字符长度保持一致

d:删除,删除行

a:增加,在指定行的下面一行插入内容

i:增加,在指定行的上面一行插入内容

r:在行后增加文本内容

$a 在最后一行插入新的内容

$i 在倒数第二行插入新的内容

$r 读取其他文件的内容,然后插入到对象文件的最后一行。

打印功能

寻址打印:按照指定的行进行打印

sed -n '=;p' test.txt

打印第二行和第五行

sed -n '2p;$p' test1.sh

打印奇数行和偶数行

cat -n test1.sh | sed -n 'p;n'(奇)

cat -n test1.sh | sed -n 'n;p'(偶)

过滤并打印包含o的

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

使用正则表达式对文本内容进行过滤

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

从指定行开始,打印得一个已bash为结尾的尾行

sed -n '3,/bash$/p' test1.sh

面试题:

如何面交互删除文本内容,但是不删除文件

两种方法:
cat /dev/null > 文件名
sed -i 'd' test1.txt
删除文件内容,不删除文件
sed -i ‘d’ + 文件名 

sed的删除操作

sed -n '3d' test,txt删除第三行打印剩余的行

匹配字符串的方式删除行

s替换字符串

sed -n 's/root/test/p' /etc/passwd

替换所有的root

sed -n 's/root/test/gp' /etc/passwd

首字母变成大写

sed 's/[a-z]/\lu&/' test.txt

u& 转移首字母大写的特殊符号。\转义符。

整行替换

sed '/IPADDR/c IPADDR=192.168.233.100' /etc/sysconfig/network-scripts/ifcfg-ens33

c要写替换行的后面

单个字符替换

[root@test1 opt]# sed 'y/one/123/' test1.txt

使用sed对字符串和字符的位置进行互换

[root@test1 opt]# echo luoyuhao | sed -r 's/(luo)(yu)(hao)/\2\3\1/' yuhaoluo

[root@test1 opt]# echo 德州扑克搞着了 | sed -r 's/(.)(.)(.)(.)(.)(.)(.)/\5\6\7\1\2\3\4/' 搞着了德州扑克

[root@test1 opt]# cat test1.txt | sed -r 's/(.)-(.)(.jar)/\2/'

[root@test1 opt]# grep -E "[0-9]+." test1.txt

面试题:如何把版本号提取出来
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar


用grep来提取

grep -E "[0-9]+\." test2.txt
用sed提取

cat test2.txt | sed -r 's/(.*)-(.*)(\.jar)/\2/'
面试题:打印指定时间内的日志。
sed -n '/Jun 21 11:00:01/,/Jun 14:01:01/p' /var/log/messages

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

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

相关文章

信息检索(52):From doc2query to docTTTTTquery

From doc2query to docTTTTTquery 摘要 发布时间(2019) 摘要 Nogueira 等人 [7] 使用简单的序列到序列转换器 [9] 进行文档扩展。我们用 T5 [8] 替换转换器,并观察到效率大幅提升。 doc2query [7] 是一种文档扩展形式,其理念是…

高清录屏软件哪个好用?分享这3款录屏软件

在我们的日常生活和工作中,视频录制是我们经常需要使用到的功能。不仅可以帮助我们录制网课内容方便后期复习,还可以录制视频会议,记录上级指示,甚至可以通过录制一些视频教程或游戏视频上传网络进行分享。 对电脑屏幕进行录制&a…

【GD32F303红枫派使用手册】第二十四节 DHT11温湿度传感器检测实验

24.1 实验内容 通过本实验主要学习以下内容: DHT11操作原理 单总线GPIO模拟操作原理 24.2 实验原理 HT11是一款已校准数字信号输出的温湿度一体化数字传感器。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点信号,传输距离可达20米以…

Codeforces Round 954 (Div. 3) (A~F)(不会数学)

A - X Axis 暴力枚举一下所有可能 void solve() {int a , b , c;cin >> a >> b >> c;int ans 100;for(int i 0 ; i < 10 ; i ){ans min(ans , abs(i - a) abs(i - b) abs(i - c));} cout << ans << endl; } B - Matrix Stabiliz…

【数据分享】2006-2023《中国贸易外经统计年鉴》

公众号新功能 目前公众号新增以下等功能 1、处理GIS出图、Python制图、区位图、土地利用现状图、土地利用动态度和重心迁移图等等 2、核密度分析、网络od分析、地形分析、空间分析等等 3、地理加权回归、地理探测器、生态环境质量指数、地理加权回归模型影响因素分析、计算…

硬件开发笔记(二十):AD21导入外部下载的元器件原理图库、封装库和3D模型

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139707771 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

webpack【实用教程】

基础配置 配置的拆分和合并 通常 webpack 的配置文件会有3个 webpack.common.js 公共配置&#xff08;会被另外两个配置文件导入并合并&#xff09;webpack.dev.js 开发环境的配置webpack.prod.js 生产环境的配置 开发环境的本地服务 在 webpack.dev.js 中配置 devServer:…

使用鸿蒙HarmonyOs NEXT 开发b站的卡片效果 手把手教学

资源准备&#xff1a; 需要4张图片&#xff1a;分别是页面图&#xff0c;播放图标&#xff0c;评论图标&#xff0c;更多图标 1.实现效果显示&#xff1a; 2.教学视频&#xff1a; 使用鸿蒙HarmonyOs NEXT 开发b站卡片_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1…

Huffman树——AcWing 148. 合并果子

目录 Huffman树 定义 运用情况 注意事项 解题思路 AcWing 148. 合并果子 题目描述 运行代码 代码思路 其它代码 代码思路 Huffman树 定义 它是一种最优二叉树。通过构建带权路径长度最小的二叉树&#xff0c;经常用于数据压缩等领域。 运用情况 在数据压缩中&a…

【机器学习】半监督学习可以实现什么功能?

目录 一、什么是机器学习二、半监督学习算法介绍三、半监督学习算法的应用场景四、半监督学习可以实现什么功能&#xff1f; 一、什么是机器学习 机器学习是一种人工智能技术&#xff0c;它使计算机系统能够从数据中学习并做出预测或决策&#xff0c;而无需明确编程。它涉及到…

Java研学-RBAC权限控制(八)

九 登录登出 1 登录作用 判断员工是否有权限访问&#xff0c;首先得知道现在操作的人是谁&#xff0c;所以必须先实现登录功能 2 登录流程 ① 提供登录页面&#xff0c;可输入用户名与密码信息&#xff0c;并添加执行登录的按钮。&#xff08;登录页面不能被拦截&#xff09;…

意识清晰,对答如流,但手脚活动受限 是脊髓损伤?

在医学领域&#xff0c;有一种情况常常令人困惑&#xff1a;患者意识清醒&#xff0c;交流无碍&#xff0c;但手脚的活动却受到限制。这种情况可能源于多种原因&#xff0c;其中之一就是脊髓损伤。本文将对脊髓损伤进行科普&#xff0c;帮助大家更好地理解这一复杂的医学问题。…

Handler、Looper与Message Queue:深入解析Android中的异步消息处理机制

在Android开发中&#xff0c;Handler、Looper和Message Queue是处理异步消息和线程间通信的核心组件。它们共同构成了一个高效且灵活的消息处理机制&#xff0c;使得开发者能够轻松地在不同线程之间传递数据和执行任务。以下将从技术难点、面试官关注点、回答吸引力和代码举例四…

AIGC技术的发展现状与未来趋势探讨

AIGC技术的发展现状与未来趋势探讨 随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;AI生成内容&#xff08;AI-Generated Content&#xff0c;AIGC&#xff09;成为了一项颠覆性的技术&#xff0c;它能够自动生成文本、图像、音频和视频等多种内容。本文将…

示例:推荐一个基于第三方QRCoder.Xaml封装的二维码显示控件

一、目的&#xff1a;基于第三方QRCoder.Xaml封装的二维码控件&#xff0c;为了方便WPF调用 二、效果如下 功能包括&#xff1a;背景色&#xff0c;前景色&#xff0c;中心图片设置和修改大小&#xff0c;二维码设置等 三、环境 VS2022 四、使用方式 1、安装nuget包&#xf…

数据可视化期末总结

期末考试重点&#xff08;世界上最没意义的事情&#xff09; 选择 p8 数据可视化的标准&#xff1a; 实用、完整、真实、艺术、交互&#xff08;性&#xff09; p21 色彩三属性 色相、饱和度、亮度 p23 视觉通道的类型&#xff1a; 记得色调是定性 p39 散点图&#xff08;二维…

【python入门】运算符

文章目录 算术运算符比较运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符优先级 算术运算符 # 加法 print(5 3) # 输出: 8# 减法 print(5 - 3) # 输出: 2# 乘法 print(4 * 3) # 输出: 12# 除法&#xff08;结果为浮点数&#xff09; print(8.0 / 3) # 输出: 2.6…

Kotlin 运行代码片段多种方式

目录 场景描述 一、Scratch files and worksheets in the IDE 1、Scratch files(草稿文件) 特点&#xff1a; Scratch files文件创建步骤&#xff1a; 功能解释&#xff1a; Scratch Buffer笔记文件&#xff1a; 2、Worksheets(工单) 1&#xff09;、创建方式不同。 …

Java中的StringBuffer和StringBuilder类

在Java编程中&#xff0c;StringBuffer和StringBuilder是两个非常重要的类&#xff0c;用于处理可变字符串。StringBuffer和StringBuilder都继承自AbstractStringBuilder&#xff0c;提供了类似的方法来操作字符串。然而&#xff0c;这两者之间存在一个关键区别&#xff1a;Str…

国内有哪些比较优秀的wordpress主题?

WordPress作为全球最受欢迎的开源内容管理系统之一&#xff0c;拥有众多优质的主题供用户选择。那么国内有哪些比较优秀的wordpress主题呢&#xff1f;下面小编就和大家分享国内功能比较完善比较受欢迎的wordpress主题。 wordpress主题合集&#xff1a;WP主题-办公人导航https:…