文本三剑客

文本三剑客
sed awk grep

grep就是查找文本当中的内容,扩展正则表达式。

sed
sed是一种流编辑器,一次处理一行内容。
如果只是展示,会放到缓冲区(模式空间),展示结束之后,会从模式空间把操作结果删除
一行一行处理,当前行处理结束,才会处理下一行,知道文件末尾。
sed的命令格式和操作选项
sed -e '操作选项 ’ 文件1 文件2
-e 表示可以跟多个操作符,只有一个操作符,-e 可以省略。 表示指定操作。
sed -e ‘操作符1;操作符2’ 文件1 文件2
选项 :
-e:用于执行多个操作命令
-f: 在脚本中定义好了操作符,然后根据脚本内容的操作符对文件进行操作
-i:直接修改目标文件(慎用)
-n:仅显示script处理后的结果(不加-n,sed会有两个输出结果,加了-n之后就会吧默认输出屏蔽,只显示一个结果)

操作符:

p :打印结果
r :使用扩展正则表达式
s :替换,替换字符串
c :替换,替换行
y :替换,替换单个字符,多个字符替换必须和替换内容的字符长度保持一致
d :删除,删除行
a :增加,指定行的下面一行插入内容
$a:在最后一行插入新的内容
i :增加,在指定行的上面一行插入内容
$i : 在倒数第二行插入新的内容
r: 在行后增加文本内容
$r:读取其他文件的内容,然后插入到对象文件的最后一行

打印功能:

[root@test3 ssed]# #寻址打印
[root@test3 ssed]# sed -n '4p' test.txt 
e
[root@test3 ssed]# cat -n test.txt | sed -n '4p'4	e
[root@test3 ssed]# #打印最后一行
[root@test3 ssed]# sed -n '$p' test.txt 
[root@test3 ssed]# #行号范围打印
[root@test3 ssed]# sed -n '2,4p' test.txt   打印第二行到第四行
[root@test3 ssed]# sed -n '2,$p' test.txt     打印第2行到最后一行
[root@test3 ssed]# sed -n '2p;$p' test.txt    单独打印第二行和最后一行
[root@test3 ssed]# #打印奇数行和偶数行
[root@test3 ssed]# sed -n 'p;n'  test.txt #打印奇数行
[root@test3 ssed]# sed -n 'n;p'  test.txt  #打印偶数行
[root@test3 ssed]# sed -n '/o/p' test.txt  #过滤并打印包含o的行
[root@test3 ssed]# sed -n  -e '/a/p' -e '/o/p' test.txt    
[root@test3 ssed]# #使用正则表达式对文本内容进行过滤 
[root@test3 ssed]# sed -n '/^root/p' /etc/passwd    #打印以root开头的行
[root@test3 ssed]# sed -n '/bash$/p' /etc/passwd    #打印bash结尾的行
[root@test3 ssed]# sed -n '3,/bash$/p' /etc/passwd    #打印从第3行开始到以bash结尾的行sed 使用扩展正则必须加r
[root@test3 ssed]# sed -rn '/(99:){2,}/p' /etc/passwd 
nobody:x:99:99:Nobody:/:/sbin/nologin[root@test3 ssed]# #要么以root为开头,要么以bash结尾的行
[root@test3 ssed]# sed -rne '/^root|bash$/p'  /etc/passwd[root@test3 ssed]# #sed的删除操作
[root@test3 ssed]# sed -n '3d;p' test.txt  #删除第三行打印其他的行
[root@test3 ssed]# sed -n '3d' test.txt    #删除第三行不打印其他行 [root@test3 ssed]# sed -n '4d;6d;p' test.txt   #只删除第四行和第六行
[root@test3 ssed]# sed -n '4,6!d;p' test.txt   #删除第4行到第6行之外的行[root@test3 ssed]# #匹配字符串删除行
[root@test3 ssed]# sed '/e/d' test.txt  # 删除包含e的行[root@test3 ssed]# sed '/qqq/,/rrr/d' test.txt   # 删除包含qqq和rrr的行
[root@test3 ssed]# sed '/qqq/!d' test.txt      #删除除qqq以外的全部行[root@test3 ssed]# #免交互 删除空行
[root@test3 ssed]# grep -v "^$" test.txt 
[root@test3 ssed]# cat test.txt  | tr -s "\n"
[root@test3 ssed]# sed '/^$/d' test.txt [root@test3 ssed]# #sed 替换 s c y
[root@test3 ssed]# #s 替换字符串
[root@test3 ssed]# sed -n 's/root/test/p' /etc/passwd    #将该文件中的每一行的第一个root替换为test
test:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/test:/sbin/nologin
[root@test3 ssed]# sed -n 's/root/test/gp' /etc/passwd    #将文件中的全部root字符替换成test
test:x:0:0:test:/test:/bin/bash
operator:x:11:0:operator:/test:/sbin/nologin
[root@test3 ssed]# sed -n 's/root/test/2p' /etc/passwd     #将该文件中的每一行的第二个root替换为test[root@test3 ssed]# sed -n 's/^/#/p' test.txt    #文件内容全部注释
[root@test3 ssed]# sed -ne '4s/^/#/p' -e '6s/^/#/p'  test.txt  #注释第四行和第六行[root@test3 ssed]# #替换字母大小写
[root@test3 ssed]# sed 's/[a-z]/\u&/'   test.txt     #首字母小写换大写u& 转换首字母换成大写的特殊模符号,\转义符。
[root@test3 ssed]# sed 's/[a-z]/\u&/g'   test.txt      #小写全部转化为大写[root@test3 ssed]# sed 's/[A-Z]/\l&/' test.txt     #首字母大写换小写
[root@test3 ssed]# sed 's/[A-Z]/\l&/g' test.txt    #大写全部转化为小写l& 转换首字母换成小写的特殊模符号,\转义符。1135  #整行替换  c1136  sed '/qqq/c 6' test.txt [root@test3 ssed]# # y 单字符替换  多个字符替换必须和替换内容的字符长度保 持一致
[root@test3 ssed]# sed 'y/qqq/666/' test.txt [root@test3 ssed]# #  r  在行后增加文本内容 
[root@test3 ssed]# sed '/www/a  niupi666 ' test.txt    # a  在行下新增
[root@test3 ssed]# sed '/www/i  niupi666 ' test.txt    # i  在行上新增
[root@test3 ssed]# sed '/www/r  test1 ' test.txt       # r  读取文件新增到test.txt最后一行[root@test3 ssed]# #使用sed对字符串和字符的位置进行互换。改变原字符的位置
[root@test3 ssed]# echo faguopaoche | sed -r 's/(faguo)(pao)(che)/\3\1\2/'  #分组之后字符串位置交换
chefaguopao
[root@test3 ssed]# echo 改变字符 |  sed -r 's/(.)(.)(.)(.)/\4\3\2\1/'
符字变改sed -n 's/.*Version: \([0-9.]*\).*/\1/p' file.txtsed 的主要作用:对文本的内容进行增删改查,强大的功能是改和增加

面试:

如何免交互删除文本内容,不删除文件

[root@test3 ssed]# #如何免交互删除文本内容
[root@test3 ssed]# sed -i 'd' test.txt      #清空文件内容不删除文件
[root@test3 ssed]# cat /dev/null > test.txt 
[root@test3 ssed]# echo " " > test.txt      # 假删除[root@test3 ssed]# #免交互 删除空行
[root@test3 ssed]# grep -v "^$" test.txt 
[root@test3 ssed]# cat test.txt  | tr -s "\n"
[root@test3 ssed]# sed '/^$/d' test.txt 笔试:
[root@test3 ssed]cat test1.txt | sed -r 's/(.*)-(.*)(\.jar)/\2/' 从文件中识别版本号
[root@test3 ssed]# sed -r 's/.*-([0-9.]+)\.jar/\1/'   test1.txt [root@test3 ssed]# tail -f /var/log/messages |  sed   -n  '/Jun 21 11:04:28/,/Jun 21 13:01:01/p'   #打印指定时间日志

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

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

相关文章

[15] 使用Opencv_CUDA 模块实现基本计算机视觉程序

使用Opencv_CUDA 模块实现基本计算机视觉程序 CUDA提供了出色的接口,发挥GPU的并行计算能力来加速复杂的计算应用程序利用CUDA和Opencv的功能实现计算机视觉应用1. 对图像的算术和逻辑运算 两个图像相加#include <iostream> #include "opencv2/opencv.hpp" #i…

Linux运维面试--yum安装和编译安装区别

风吹哪页读哪页&#xff0c;花开何时看何时。 目录 # 1.安装方式差异 ## 1.1 yum安装 ## 1.2 源码编译安装 # 2.优缺点分析 ## 2.1 yum安装优缺点 ### 2.1.1 yum安装优点 ### 2.1.2 yum安装缺点 ## 2.2 源码安装优缺点 ### 2.2.1 源码安装优点 ### 2.2.2 源码安装缺点…

JS 实现复制文本到剪贴板

方式一&#xff1a;使用 Clipboard API 方式 /** 将文本复制到剪贴板* param e 要复制的内容*/ copyTextToClipboard(e) {const navClipboard navigator.clipboardif (!navClipboard) {console.log(浏览器不支持 Clipboard API 方式)return}navClipboard.writeText(e).then((…

主数据驱动的数据治理:技术解析与实践探索

数字化转型行业小伙伴可以加入我的星球&#xff0c;初衷成为各位数字化转型参考库&#xff0c;星球内容每周更新 个人工作经验资料全部放在这里&#xff0c;包含数据治理、数据要素、数据质量、数据安全、元数据、主数据、企业架构、DCMM、DSMM、CDGA、CDGP等各种数据相关材料 …

使用Python脚本预测天气预报的技术指南

一、引言 随着大数据和机器学习技术的快速发展&#xff0c;天气预报的准确性得到了显著提升。Python作为一种强大的编程语言&#xff0c;提供了丰富的库和工具&#xff0c;使得构建和训练预测模型变得更加容易。本文旨在介绍如何使用Python脚本进行天气预报的预测&#xff0c;…

抖音多功能全自动引流工具,支持评论关注私信留痕点赞等,让你的抖音粉丝暴涨!

随着短视频行业的火爆&#xff0c;越来越多的人开始关注抖音这个平台。然而&#xff0c;如何在抖音上获得更多的关注和粉丝&#xff0c;成为了许多人面临的难题。为了帮助大家解决这个问题&#xff0c;今天我们将为大家推荐一款抖音多功能全自动引流脚本&#xff0c;这款脚本可…

HarmonyOS SDK助力鸿蒙原生应用“易感知、易理解、易操作”

6月21-23日&#xff0c;华为开发者大会&#xff08;HDC 2024&#xff09;盛大开幕。6月23日上午&#xff0c;《HarmonyOS开放能力&#xff0c;使能应用原生易用体验》分论坛成功举办&#xff0c;大会邀请了多位华为技术专家深度解读如何通过根技术、开放能力、场景化控件等亮点…

vue3 antdv Select 实现输入关键词,通过服务器去查询数据,并显示到表格中的实现思路。

实现思路&#xff1a; 1&#xff09;输入关键词&#xff0c;通过Select的查询事件&#xff08;onSearch&#xff09;来到服务器查询数据。 2&#xff09;根据查询到的数据显示到表格中&#xff0c;然后通过表格的&#xff08;cellClickEvent&#xff09;事件来选择相关的用户…

Python武器库开发-武器库篇之ThinkPHP 5.0.23-RCE 漏洞复现(六十四)

Python武器库开发-武器库篇之ThinkPHP 5.0.23-RCE 漏洞复现&#xff08;六十四&#xff09; 漏洞环境搭建 这里我们使用Kali虚拟机安装docker并搭建vulhub靶场来进行ThinkPHP漏洞环境的安装&#xff0c;我们进入 ThinkPHP漏洞环境&#xff0c;可以 cd ThinkPHP&#xff0c;然…

嵌入式学习——数据结构(队列)——day50

1. 查找二叉树、搜索二叉树、平衡二叉树 2. 哈希表——人的身份证——哈希函数 3. 哈希冲突、哈希矛盾 4. 哈希代码 4.1 创建哈希表 4.2 5. 算法设计 5.1 正确性 5.2 可读性&#xff08;高内聚、低耦合&#xff09; 5.3 健壮性 5.4 高效率&#xff08;时间复杂度&am…

【Java】pcm 与 wav 格式互转工具类 (附测试用例)

文章目录 1. 前言1.1 背景1.2 目标1.3 亮点 2. 用例说明3. 补充验证4. 相关链接 1. 前言 git 仓库 https://github.com/ChenghanY/pcm-wav-converter 1.1 背景 系统新接入语音引擎。 语音引擎只认 pcm 格式数据。前端只认 wav 格式 。 需要后端对 pcm 和 wav 格式实现互转&a…

2.超声波测距模块

1.简介 2.超声波的时序图 3.基于51单片机实现的代码 #include "reg52.h" #include "intrins.h" sbit led1P3^7;//小于10&#xff0c;led1亮&#xff0c;led2灭 sbit led2P3^6;//否则&#xff0c;led1灭&#xff0c;led2亮 sbit trigP1^5; sbit echo…

Adobe XD最新2023资源百度云盘下载(附教程)

如大家所了解的&#xff0c;Adobe XD是一种基于矢量的UI和UX设计工具&#xff0c;可用于设计从智能手表应用程序到成熟网站的任何内容&#xff0c;功能非常强大且操作便捷。目前最新已推出2023版本。 Adobe XD解决了Photoshop和其他图形应用程序无法解决的两个主要问题&#xf…

vue 中实现用户上传文件夹的功能

vue 中实现上传文件夹的功能 使用 input 元素的 webkitdirectory 属性使用 vue-simple-uploader 组件 vue 中文件上传一般都是用 element 中的 upload 组件&#xff0c;upload 组件可以实现单个文件或者多个文件的上传&#xff0c;但是无法通过选择文件夹上传其中文件。 要实现…

八爪鱼现金流-030,升级日志

八爪鱼现金流 八爪鱼 2024年4月4日09:27:02 v-0.0.1 资产包、负债包&#xff0c;功能优化 2024年4月15日09:27:26 v-0.0.2 增加公告模块 2024年4月18日12:14:32 v-0.0.3 市场查询优化。创建人脱敏处理。增加市场风云菜单。 2024年4月18日15:57:10 v-0.0.4 对于无截止日…

如何自制一个Spring Boot Starter并推送到远端公服

在现代Java开发中&#xff0c;Spring Boot无疑是一个强大且便捷的框架&#xff0c;它通过提供大量的Starter来简化依赖管理和项目配置。有时&#xff0c;我们可能需要为特定功能或团队定制Starter。本文将指导你如何创建自己的Spring Boot Starter并将其推送到远程公共服务器上…

Pwn刷题记录(不停更新)

1、CTFshow-pwn04&#xff08;基础canary&#xff09; ​ 好久没碰过pwn了&#xff0c;今天临时做一道吧&#xff0c;毕竟刚联合了WSL和VSCode&#xff0c;想着试着做一道题看看&#xff0c;结果随手一点&#xff0c;就是一个很少接触的&#xff0c;拿来刷刷&#xff1a; ​ …

音乐AI浪潮下的版权与创新挑战

最近的一个月&#xff0c;音乐大模型的热潮席卷了整个音乐圈。这些模型的出现&#xff0c;让音乐创作变得前所未有的简单&#xff0c;也引发了关于音乐产业是否会被AI彻底颠覆的讨论。然而&#xff0c;在短暂的兴奋过后&#xff0c;我们开始面临更多的挑战&#xff0c;如AI产品…

ClosedXML

一、类库介绍 ClosedXML是一个用于读取、操作和写入Excel 2007 (.xlsx, .xlsm)文件的.NET第三方库。它基于OpenXML&#xff0c;但与OpenXML相比&#xff0c;ClosedXML具有更高的性能和更易于使用的API接口。 ClosedXML支持XML文档的解析和生成&#xff0c;可以处理复杂的XML结…

Linux Ubuntu C语言开发环境设置和相关资料

1. 安装编译所需的包 sudo apt install build-essential 2. The GNU C Library, C语言库函数的源代码下载 https://sourceware.org/glibc/ 3. C语言库函数文档 官方文档 The GNU C Library 4. ASCII码表 ASCII table - Table of ASCII codes, characters and symbols