Linux:Shell编辑之文本处理器(sed)

目录

绪论

1、sed的原理:读取 执行 显示 三个过程

2、sed 文本内容处理工具,文件过大怎么办?

3、sed的操作选项

3.1 常用选项

3.2 操作符

3.3 行号的范围打印

3.4 对包含指定字符串的内容进行打印

3.5 删

3.5.1 正则表达式删除

3.6 替换

3.6.1 字母字符的大小写替换

3.7 整行替换和单字符替换

3.8 增加

3.9 sed命令当中字符串的位置进行交换

3.10 取日志范围 


绪论

sed:类似于vim就是一个文本编辑器,按行来编辑和处理,针对文件内容的行进行处理

主要作用是对文本内容进行增删改查,sed可以支持正则表达式,支持扩展正则表达式

1、sed的原理:读取 执行 显示 三个过程

读取:读取文本内容后,读取到的内容存放到临时的缓冲区,模式空间

执行:在模式空间,根据读取的文本内容,按行执行,除非指定引号,否则会遍历所有行,从上往下执行

显示:执行完后,把执行结果打印,如果要改变生效,模式空间被修改的内容会写入到指定的文件当中,只是操作,但是不最终写入文件,只展示结果,展示完后,模式空间的数据立即删除

2、sed 文本内容处理工具,文件过大怎么办?

split拆分文件

或者通过  cat  文件名  |  sed  处理(只适用于中兴文件,大型文件还是先分割)

3、sed的操作选项

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

3.1 常用选项

-e :条件操作选项

-f :指定脚本文件来处理输入的文件内容,把命令写在脚本里,用脚本里的命令来处理第二个文件里面的内容

-i :立即生效 慎用

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

3.2 操作符

s 替换指定字符

d  删除指定的行

a  增加在当前的下面插入指定内容

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

c  替换,整行替换

y  替换字符,但是替换前后的字符长度必须一致

p  打印

r  扩展正则

sed的核心就是改,删 ,增 查是没有grep强大 

sed '  '  :查看打印功能

eg:sed  '  '  /etc/passwd

只输出行号:sed  -n  '='  ky30.txt

输出行号和内容:sed  -n  '=;p'  ky30.txt

打印指定行:sed  -n  '2p'  ky30.txt

直接打印最后一行:sed  -n  '$p'  ky30.txt

3.3 行号的范围打印

sed  -n  '1,3p'  ky30.txt  打印1到3行

sed  -n  '2,+2p'  ky30.txt  打印第2到第4行

 sed  -n  '2p;$p'  ky30.txt  打印第二行和最后一行

3.4 对包含指定字符串的内容进行打印

sed  -n  '/o/p'  ky20.txt  把所有包含o的行会全部打印

sed  -r  -n  '/(99:){2}/p'  /etc/passwd  把有99的那行打印

3.5 删

sed  "d"  ky30.txt

eg:怎么不进人文件就可以删除文件的内容(免交互删除)

sed  -i  'd'  ky30.txt或者 cat  /dev/null  >  ky30.txt

指定行号进行删除:

sed  -n  '3d;p'  ky30  删除第三行,打印剩余行内容

sed  -n  '|d;3d;p'  ky30.txt

sed  '/big/!d'  ky30.txt  除了big这行不删除

3.5.1 正则表达式删除

sed  '/^$'  ky30.txt  删除空行

3.6 替换

s:替换字符串

c:整行替换

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

sed  -n  's/root/test/p'  /etc/passwd  替换每行的第一个root为test,想要替换第二个在p前面加一个2,想要替换全部在p前面加个g

3.6.1 字母字符的大小写替换

sed  's/[a-z]/\u&/'  ky30.txt  首字母变大写了

sed  's/[a-z]/\u&/g'  ky30.txt所有字母都生效

l&转换成小写的特殊符号,在使用时,需要转义符\

eg:sed  's/[A-Z]\l&/g'  ky30.txt

 u&转换成大写的特殊符号,在使用时,需要转义符\

g 全部替换,如果不加,只会更改首字符

3.7 整行替换和单字符替换

sed  '/exy/c  zhangsan is  sexy'  ky30.txt  将exy替换成zhangsan  is  sexy

字符串替换前后长度要相同:y

sed  'y/a/1/'  ky30.txt  将a换成1

3.8 增加

a:在下一行添加

i:在上一行添加

r: 在行后读入指定文件内容

eg:sed  '/123/a  456'  ky30.txt

sed  '/bighouse/r  ky31.txt'  ky30.txt   前面为要读的文件  后面为本文件

3.9 sed命令当中字符串的位置进行交换

sed  -r  使用扩展正则

echo  ky30lt  |  sed  -r  's/(ky30)(lt)/\2\'p

汉字换位:

echo  汉字  |  sed  -r  's/(.)(.)/\2\1/'

sed  -f: 指定脚本文件来处理输入的文件内容,把命令写在脚本里,用脚本里的命令来处理第二个文件里面的内容

3.10 取日志范围 

 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉|生成对抗】条件生成对抗网络(CGAN)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Conditional Generative Adversarial Nets 链接:[1411.1784] Conditional Generative Adversarial Nets (arxiv.org) 摘要 生成对抗网络(Generative Adversarial…

打靶练习:WestWild 1.1(一个简单但不失优雅的Ubuntu靶机)

主机发现和nmap信息收集 //主机发现 sudo nmap -sn 192.168.226.0/24 //扫描整个C段//端口扫描//初步扫描 sudo nmap -sT --min-rate 10000 -p- 192.168.226.131 -oA nmapscan/ports //用TCP的三次握手,以速率10000扫描1-65535端口,扫描结果以全格式…

VM虚拟机搭建详细步骤

一、安装好VMware,双击exe程序,启动软件 二、新建虚拟机 三、选择“典型”,点击“下一步” 四、先择“稍后安装操作系统”,点击“下一步” 五、选择操作系统,以windows server 2008 为例,上方选择“Microso…

在Centos环境中搭建Nginx环境

一、Nginx概念简介 Nginx是一个轻量级的高性能HTTP反向代理服务器,同时它也是一个通用类型的代理服务器,支持绝大部分协议,如TCP、UDP、SMTP、HTTPS等。 Nginx与redis相同,都是基于多路复用模型构建出的产物,因此它与R…

机器学习实战3-随机森林算法

文章目录 集成算法概述sklearn中的集成算法模块 RandomForestClassifier重要参数&&随机森林的分类器控制基评估器的参数n_estimatorssklearn建模流程复习交叉验证我们进行10次交叉验证,观察随机森林和决策树的效果n_estimators学习曲线 bootstrap & oob…

华为鸿蒙全屋定制,高速Wi-Fi信号难以配置?华为全屋定制一站解决

目前,采用5GHz频段的Wi-Fi路由器逐渐在大众家庭中普及开来,5G Wi-Fi已然成为高速网络的代名词之一。但是由于高频信号的物理特性,5GHz信号比原来的2.4GHz信号波长更短,信号衰减更快,很多使用单个路由器户型复杂的房屋会…

华为HiLink、海尔智家、智汀各自的核心优势?

“智能家居”这个概念出现的很早,但由于缺乏智能相关技术支撑,使得很多家电产品之间缺乏联动,在兼容方面缺乏数据共享,无法真正带给用户"智能互联"的体验等等。 在手机应用市场之中搜索“智能家居”,相关APP…

华为q1设置虚拟服务器,华为路由Q1怎么用 华为路由Q1设置上网图文教程

华为路由Q1怎么设置?作为一款主流智能路由器产品,华为路由Q1创新性采用子母路由的概念,通过子路由器即插即用子母机互联,达到提升覆盖面积的效果,更适合大户型使用,以下是小编带来的华为路由Q1设置上网教程&#xff0…

余承东自爆:华为路由器重磅旗舰新品或将来袭!

今日,华为消费者BG CEO余承东在今日头条上发布了一则关于华为路由器产品的最新消息。 根据消息称,华为路由器团队的一项技术专利获得“第十九届中国专利金奖”,并提到该项技术是物联网、智能家居、家庭、企业WiFi等众多应用场景中互联互通的关…

2021年全球及中国企业级路由器市场竞争格局分析,呈现出寡头竞争的市场格局「图」

一、路由器行业定义及分类 路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。按照不同的分类依据,可将路由器分为以下几类: 路由器行业分类 ​ …

华为鸿蒙wifi6,运行鸿蒙OS!华为子母路由H6发布:再也不怕没WiFi了?

5月19日下午,华为召开了全场景智慧生活发布会,发布了多款智能生态产品,其中华为子母路由H6吸引了消费者的目光。该路由器专为大户型设计,基础款1母3子,售价1999元,适用于200㎡左右的房间。 如果用户有需求&…

华为鸿蒙os路由器,运行鸿蒙 OS!华为子母路由 H6 发布:再也不怕没 WiFi 了?

5 月 19 日下午,华为召开了全场景智慧生活发布会,发布了多款智能生态产品,其中华为子母路由 H6 吸引了消费者的目光。该路由器专为大户型设计,基础款 1 母 3 子,售价 1999 元,适用于 200㎡左右的房间。 如果…

华为q1设置虚拟服务器,我们拿到了华为路由Q1,准备手把手教你用

对于大部分“夏天不出门星人”,除了西瓜和空调,Wi-Fi应该是抵御酷暑的最后屏障。 还在举着手机到处找信号? 还在因为游戏/视频掉线大汗淋漓? 还在家中折返跑重启路由? 没错,这些事,终端君&#…

修改element-plus主题色

修改element-plus主题色 前提:要安装按需引入和自动导入插件 ​npm install -D unplugin-vue-components unplugin-auto-import文章目录 修改element-plus主题色一、安装插件二、新建一个element的覆盖scss文件三、配置 一、安装插件 npm install -D unplugin-vu…

基础篇-环境搭建

JDK安装 https://www.oracle.com/java/technologies/downloads/ 安装完成后,一直点下一步就行 打开控制面板输入cmd运行,控制台输入java -version。如果看到版本号就说明我们安装成功了 JDK的组成 1. JVM JAVA虚拟机,JAVA真正运行的地方 …

Qt 暗夜模式的设置

Qt 暗夜模式的设置 一. 先配置为Dark风格 二. 配置编辑器的风格 工具-》选项 文本编辑器 -》 字体和颜色 在此配置字体和颜色 笔者的选择见下图在这里插入代码片 最终配置得到的效果 还不戳~ 咦耶~ 😎

设置HBuilder X酷黑模式、暗夜模式、暗黑模式、夜间模式

顶部菜单-工具-主题-酷黑 快捷键:ALTTTB 设置好了之后,就是下面的样子

Vue3+vite实现黑暗模式/暗夜模式/主题换肤

包版本: vite.config.js: import { defineConfig } from vite import vue from vitejs/plugin-vue import { resolve } from "path";// https://vitejs.dev/config/ export default defineConfig({plugins: [vue()],css: {preprocessorOption…

android 关闭暗夜模式

1、style文件中设置 <!--关闭暗夜模式--><item name"android:forceDarkAllowed" tools:targetApi"q">false</item> 2、style的parent一定要是Light模式下的主题&#xff0c;不要设置成 DayNight 模式下的主题&#xff1b;

切换浅色和暗夜模式的vue组件 darkmode-switch-btn

简单方案 第一步 在head中声明<meta name"color-scheme" content"light dark">&#xff0c;声明当前页面支持 light 和 dark 两种模式 第二步 设置不同模式下的全局样式变量&#xff0c;供全局子元素引用&#xff0c;实现模式修改&#xff0c;全局…