怎么在工商局网站做股东变更/免费下载优化大师
sed是什么
Linux sed 命令是利用脚本来处理文本文件。 可依照脚本的指令来处理、编辑文本文件。主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
sed命令详解
语法
sed [-hnV][-e <script>][-f<script文件>][文本文件]
sed [-nefr] [动作]
参数
-e<script>或–expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-h或–help 显示帮助。
-n或–quiet或–silent 仅显示script处理后的结果。
动作
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
d :删除
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :取代,可以直接进行取代的工作。通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g
高级子命令
高级子命令比较少,但是比较复杂,平时用的也会相对少些,却也很重要,有的内容处理不用高级子命令是完成不了的。
n:读入下一行到模式空间,例:’4{n;d}’ 删除第5行。
N:追加下一行到模式空间,再把当前行和下一行同时应用后面的命令。
P:输出多行模式空间的第一部分,直到第一个嵌入的换行符位置。在执行完脚本的最后一个命令之后,模式空间的内容自动输出。P命令经常出现在N命令之后和D命令之前。
D:删除模式空间中第一个换行符的内容。它不会导致读入新的输入行,相反,它返回到脚本的顶端,将这些指令应用与模式空间剩余的内容。这3个命令能建立一个输入、输出循环,用来维护两行模式空间,但是一次只输出一行。
例子1:
sed 'N;$!P;D' a.txt
#说明:删除文件倒数第二行
例子2:
sed 'N;! P ; !P;!P;!D;$d' a.txt
例子
#在 testfile 文件的第四行后添加一行
sed -e 4a\newLine testfile
#将 testfile 的内容列出并且列印行号,同时,请将第 2~5 行删除!
nl testfile | sed '2,5d'
#要删除第 3 到最后一行:
nl testfile | sed '3,$d'
#第二行后(即加在第三行) 加上test 字样
nl testfile | sed 'test'
#第二行前 加上test 字样
nl testfile | sed '2i drink tea'
#要增加两行以上,在第二行后面加入两行字,例如 test0 与 test1?
nl testfile | sed '2a test0\
test1'
#取代2到5行的内容
nl testfile | sed '2,5c No 2-5 number'
#列出 testfile 文件内的第 5-7 行
nl testfile | sed -n '5,7p'
#搜索 testfile 有 oo 关键字的行
nl testfile | sed -n '/oo/p'
#删除 testfile 所有包含 oo 的行,其他行输出
nl testfile | sed '/oo/d'
#数据的搜寻并执行命令
#搜索 testfile,找到 oo 对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把 oo 替换为 kk,再输出这行。最后的 q 是退出。
nl testfile | sed -n '/oo/{s/oo/kk/;p;q}' #数据的查找与替换
#除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的查找与替换。sed 的查找与替换的与 vi 命令类似,语法格式如下:
sed 's/要被取代的字串/新的字串/g'
#将 testfile 文件中每行第一次出现的 oo 用字符串 kk 替换,然后将该文件内容输出到标准输出:
sed -e 's/oo/kk/' testfile
#g 标识符表示全局查找替换,使 sed 对文件中所有符合的字符串都被替换,修改后内容会到标准输出,不会修改原文件:
sed -e 's/oo/kk/g' testfile
#选项 i 使 sed 修改文件:
sed -i 's/oo/kk/g' testfile
#批量操作当前目录下以 test 开头的文件:
sed -i 's/oo/kk/g' ./test*#样本 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
#将 IP 前面的部分予以删除:
/sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
#将 IP 后面的部分予以删除:
/sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'#多点编辑
一条 sed 命令,删除 testfile 第三行到末尾的数据,并把 HELLO 替换为 test
nl testfile | sed -e '3,$d' -e 's/HELLO/test/'#直接修改文件内容
#sed 将 regular_express.txt 内每一行结尾若为.则换成!
sed -i 's/\.$/\!/g' regular_express.txt
#利用 sed 直接在 regular_express.txt 最后一行加入 # This is a test:
sed -i '$a # This is a test' regular_express.txt
#把hello换成A保存到file.txt,同时会以file.txt.bak文件备份原来未修改文件内容,以确保原始文件内容安全性,防止错误操作而无法恢复原来内容。
sed –i.bak 's/hello/A/' file.txt
echo “hello world” | sed -r 's/(hello)|(world)/A/g'
#将第2-4行中hello字符串替换为A,其它行如果有hello也不会被替换。
sed –n '2,4s/hello/A/' message
#从第2行开始,再接着往下数4行,也就是2-6行,这些行会把hello字符替换为A。
sed –n '2,+4s/hello/A/' message
#第4行开始,到第6行。解释6的由来,"4,~3"表示从4行开始到下一个3的倍数,这里从4开始算,那就是6了,当然9就不是了,因为是要求3的第一个超过前边数字4的倍数
sed –n '4,~3s/hello/A/' message
#从第4行开始,每隔3行就把hello替换为A。比如从4行开始,7行,10行等依次+3行。这个比较常用,比如3替换为2的时候,也就是每隔2行的步调,可以实现奇数和偶数行的操作。
sed –n '4~3s/hello/A/' message
#!符号表示取反,该命令是将除了第1行,其它行hello替换为A,上述定址方式也可以使用!符号
sed -n '1!s/hello/A/' message
#将匹配到nihao的行执行删除操作。
sed -n '/nihao/d' message
#删除空行
sed -n '/^$/d' message
#说明:匹配以TS开头的行到TE开头的行之间的行,把匹配到的这些行删除。
sed -n '/TS/,/TE/d' message
#匹配从第1行到TS开头的行,把匹配的行删除
sed -n '1,/^TS/d' message
#将从TS开头的行到TE开头的行之间范围的行内容中CN替换为China,并且把Beijing替换为BJ,类似于多命令之间用分号的那种方式,不过这样定址代码只写了一遍,相当于执行了一条子命令。
/TS/,/TE/{
s/CN/China/
s/Beijing/BJ/
}
sed -n `2,3s{/cn/china/;/a/b/}` message
#将message文件中1-2行的下边分别添加3行,3行内容分别是A、B、C,这里使用了\n,插入多行内容都可以按照这种方式来实现。
sed `1,2a A\nB\nC` messagecat message
hello 123 world
#将message每行包含的第一个hello的字符串替换为HELLO,这是最基本的用法。
sed 's/hello/HELLO/' message
#用了扩展正则表达式,需要加-r选项。结果:A
sed -r 's/[a-z]+ [0-9]+ [a-z]+/A/' message
#结果:hello 123 world
sed -r 's/([a-z]+)( [0-9]+ )([a-z]+)/\1\2\3/' message
#\1表示正则第一个分组结果,\2表示正则匹配第二个分组结果,\3表示正则匹配第三个分组结果。结果:world 123 hello
sed -r 's/([a-z]+)( [0-9]+ )([a-z]+)/\3\2\1/' message
# &表示正则表达式匹配的整个结果集。结果:hello 123 world
sed -r 's/([a-z]+)( [0-9]+ )([a-z]+)/&/' message
#在匹配结果前后分别加了111、222。结果:111hello 123 world222
sed -r 's/([a-z]+)( [0-9]+ )([a-z]+)/111&222/' message
#在message文件中每行的首尾分别加上111、222。
sed -r 's/.*/111&222/' message
#把message文件中每行的所有i字符替换为A,默认不加g标记时只替换每行的第一个字符。
sed 's/i/A/g' message
#把message文件中每行的第2个i字符替换为A。
sed 's/i/A/2' message
#加-p标记会把被替换的行打印出来,再加上-n选项会关闭模式空间打印模式,因此该命令的效果就是只显示被替换修改的行。
sed -n 's/i/A/p' message
#把message文件中内容的每行第一个字符i替换为A,然后把修改内容另存为b.txt文件。
sed -n 's/i/A/w b.txt' message
#把message文件中每一行的第一个i或I字符替换为A字符,也即是忽略大小写。
sed -n 's/i/A/i' message#删除文件每行的第二个字符。
sed -r 's/(.*)(.)$/\1/'
#删除文件每行的最后一个字符。
sed -r 's/(.*)(.)$/\1/'
#删除文件每行的倒数第2个单词。
sed -r 's/(.)([a-Z]+)([a-Z]+)([a-Z]+)([a-Z]+)([^a-Z]$)/\1\2\4\5/' /etc/passwd
#交换每行的第一个字符和第二个字符。
sed -r 's/(.)(.)(.*)/\2\1\3/' /etc/passwd
#交换每行的第一个单词和最后一个单词。
sed -r 's/([a-Z]+)([a-Z]+)(.*)([a-Z]+)([a-Z]+)([^a-Z]*$)/\5\2\3\4\1\6/' /etc/passwd
#删除一个文件中所有的数字。
sed 's/[0-9]//g' /etc/passwd
#用制表符替换文件中出现的所有空格。
sed -r 's/ +/\t/g' /etc/passwd
#把所有大写字母用括号()括起来。
sed -r 's/([A-Z])/(\1)/g' /etc/passwd
#打印每行3次。
sed 'p;p' /etc/passwd
#隔行删除
sed '0~2{=;d}' /etc/passwd
#把文件从第22行到第33行复制到56行后面。
sed '22h;23,33H;56G' /etc/passwd
#把文件从第22行到第33行移动到第56行后面。
sed '22{h;d};23,33{H;d};56g' /etc/passwd
#只显示每行的第一个单词。
sed -r 's/([a-Z]+)([^a-Z]+)(.*)/\1/' /etc/passwd
#打印每行的第一个单词和第三个单词。
sed -r 's/([a-Z]+)([a-Z]+)([a-Z]+)([a-Z]+)([a-Z]+)([^a-Z]+)(.*)/\1\t\5/' /etc/passwd
#将格式为mm/yy/dd的日期格式换成 mm;yy;dd
date `+%m/%y/%d' | sed 's///;/g'
相关文章:

Shell之sed
sed是什么 Linux sed 命令是利用脚本来处理文本文件。 可依照脚本的指令来处理、编辑文本文件。主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 sed命令详解 语法 sed [-hnV][-e <script>][-f<script文件>][文本文件] sed [-nefr] [动作…...

AJAX——认识URL
1 什么是URL? 统一资源定位符(英语:Uniform Resource Locator,缩写:URL,或称统一资源定位器、定位地址、URL地址)俗称网页地址,简称网址,是因特网上标准的资源的地址&…...

《Docker极简教程》--Docker环境的搭建--在Linux上搭建Docker环境
更新系统:首先确保所有的包管理器都是最新的。对于基于Debian的系统(如Ubuntu),可以使用以下命令:sudo apt-get update sudo apt-get upgrade安装必要的依赖项:安装一些必要的工具,比如ca-certi…...

开源微服务平台框架的特点是什么?
借助什么平台的力量,可以让企业实现高效率的流程化办公?低代码技术平台是近些年来较为流行的平台产品,可以帮助很多行业进入流程化办公新时代,做好数据管理工作,从而提升企业市场竞争力。流辰信息专业研发低代码技术平…...

C#系列-C#操作UDP发送接收数据(10)
在C#中,发送UDP数据并接收响应通常涉及创建两个UdpClient实例:一个用于发送数据,另一个用于接收响应。以下是发送UDP数据并接收响应的示例代码: 首先,我们需要定义一个方法来发送UDP数据,并等待接收服务器…...

突破编程_C++_面试(基础知识(10))
面试题29:什么是嵌套类,它有什么作用 嵌套类指的是在一个类的内部定义的另一个类。嵌套类可以作为外部类的一个成员,但它与其声明类型紧密关联,不应被用作通用类型。嵌套类可以访问外部类的所有成员,包括私有成员&…...

初步探索Pyglet库:打造轻量级多媒体与游戏开发利器
目录 pyglet库 功能特点 安装和导入 安装 导入 基本代码框架 导入模块 创建窗口 创建控件 定义事件 运行应用 程序界面 运行结果 完整代码 标签控件 常用事件 窗口事件 鼠标事件 键盘事件 文本事件 其它场景 网页标签 音乐播放 图片显示 祝大家新…...

【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件
问题 如图,明明安装Vue是全局包,但是使用时却提示: 解决办法 使用以下命令任意一种命令查看全局包的配置路径 npm root -g 然后将此路径(不包括node_modules)添加到环境变量中去,这里注意,原…...

Go 语言 for 的用法
For statements 本文简单翻译了 Go 语言中 for 的三种用法,可快速学习 Go 语言 for 的使用方法,希望本文能为你解开一些关于 for 的疑惑。详细内容可见文档 For statements。 For statements with single condition 在最简单的形式中,只要…...

熵权法Python代码实现
文章目录 前言代码数据熵权法代码结果 前言 熵权法做实证的好像很爱用,matlab的已经实现过了,但是matlab太大了早就删了,所以搞一搞python实现的,操作空间还比较大 代码 数据 import pandas as pd data [[100,90,100,84,90,1…...

浏览器提示ERR_SSL_KEY_USAGE_INCOMPATIBLE解决
ERR_SSL_KEY_USAGE_INCOMPATIBLE报错原因 ERR_SSL_KEY_USAGE_INCOMPATIBLE 错误通常发生在使用 SSL/TLS 连接时,指的是客户端和服务器之间进行安全通信尝试失败,原因是证书中的密钥用途(Key Usage)或扩展密钥用途(Extended Key Usage, EKU)与正在尝试的操作不兼容。这意味…...

使用深度学习进行“序列到序列”分类
目录 加载序列数据 定义 LSTM 网络架构 测试 LSTM 网络 此示例说明如何使用长短期记忆 (LSTM) 网络对序列数据的每个时间步进行分类。 要训练深度神经网络以对序列数据的每个时间步进行分类,可以使用“序列到序列”LSTM 网络。通过“序列到序列”LSTM 网络,可以对…...

Python和Java的区别(不断更新)
主要通过几个方面区分Python和Java,让大家有一个对比: 语言类型 Java是一种静态类型、编译型语言。 Python是一种动态类型、解释型语言,注重简洁和灵活的语法。 语法 在Java中,变量需要显式地声明,指定其类型。例如&am…...

Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(三)
八、ui窗体创建要点 .h文件定义(popwindowf.h), TEST_TYPE_WINDOW宏是要创建的窗口样式。 #pragma once #include <gtk/gtk.h> G_BEGIN_DECLS #define TEST_TYPE_WINDOW (test_window_get_type()) G_DECLARE_FINAL_TYPE (TestWindow, test_window, TEST, WI…...

vue electron 应用在windows系统上以管理员权限打开应用
打开package.json文件,在build下的win增加配置 "requestedExecutionLevel": "requireAdministrator",...

c实现链表
目录 c实现链表 链表的结构定义: 链表的结构操作: 1、初始化链表 2、销毁链表 3、插入结点 4、输出链表数据 5、查找链表数据 扩展 代码实现 c实现链表 链表的结构定义: /*** 链表结构定义 ***/ typedef struct Node {int data; //…...

力扣231. 2 的幂(数学,二分查找,位运算)
Problem: 231. 2 的幂 文章目录 题目描述思路即解法复杂度Code 题目描述 思路即解法 思路1:位运算 1.易验证2的幂为正数; 2.易得2的幂用二进制表示只能有一个位为数字1 3.即将其转换为二进制统计其二进制1的个数 思路2:数学 当给定数n大于1时…...

Maven私服部署与JAR文件本地安装
Nexus3 是一个仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。 平常我们在获取 maven 仓库资源的时候,都是从 maven 的官方(或者国内的镜像)获取。团队的多人员同样的依赖都要从远程获取一遍,从网络方…...

【MySQL】字符串函数的学习
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-J7VN4RbrBi51ozap {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

AI助力农作物自动采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建作番茄采摘场景下番茄成熟度检测识别计数分析系统
去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物,专家设计出来了很多用于采摘不同农作物的大型机械,看着非常震撼,但是我们国内农业的发展还是相对比较滞后的࿰…...

记录下ibus-libpinyin输入法的重新安装
目前的版本为: 首先把现在的ibus-libpinyin卸了 sudo apt-get --purge remove ibus-libpinyin sudo apt-get autoremove 安装教程请参考 Installation libpinyin/ibus-libpinyin Wiki GitHub yilai sudo apt install pkg-config sudo apt-get install lib…...

第三百一十八回
文章目录 1. 概念介绍2. 使用方法2.1 本地缓冲2.2 服务器缓冲3. 示例代码4. 内容总结我们在上一章回中介绍了"如何让输入键盘不遮挡屏幕"相关的内容,本章回中将介绍如何有效地缓冲网络图片.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的…...

破除Github API接口的访问次数限制
破除Github API接口的访问次数限制 1、Github介绍2、Github API接口2.1 介绍2.2 使用方法 3、Github API访问限制3.1 访问限制原因3.2 访问限制类别 4、Github API访问限制破除4.1 限制破除原理4.2 限制破除示例 1、Github介绍 Github,是一个面向开源及私有软件项目…...

蓝桥杯嵌入式第8届真题(完成) STM32G431
蓝桥杯嵌入式第8届真题(完成) STM32G431 题目 分析和代码 对比第六届和第七届,这届的题目在逻辑思维上确实要麻烦不少,可以从题目看出,这届题目对时间顺序的要求很严格,所以就可以使用状态机的思想来编程,拿到类似题…...

第二节 zookeeper基础应用与实战
目录 1. Zookeeper命令操作 1.1 Zookeeper 数据模型 1.2 Zookeeper服务端常用命令 1.3 Zookeeper客户端常用命令 1.3.1 基本CRUD 1.3.2 创建临时&顺序节点 2. Zookeeper JavaAPI操作 2.1 Curator介绍 2.2 引入Curator 2.3 建立连接 2.4 添加节点 2.5 修改节点 …...

改变AI服务器:探索界面互连芯片技术的创新突破
根据TrendForce的数据,AI服务器的出货量约为130,000台,占全球服务器总出货量的约1%。随着微软、Meta、百度和字节跳动等主要制造商相继推出基于生成式AI的产品和服务,订单量显著增加。预测显示,在ChatGPT等应用的持续需求推动下&a…...

【P1506 拯救oibh总部】
拯救oibh总部 题目背景 oibh 总部突然被水淹没了!现在需要你的救援…… 题目描述 oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙。用 * 号表示,而一个四面被围墙围住的区域洪水是进不去的。 oibh 总部内部也有许…...

应用层 HTTP协议(1)
回顾 前面我们说到了数据链路层,网络层IP协议,传输层的TCP/UDP协议一些知识点,现在让我们谈谈 应用层的HTTP协议的知识点. 这篇我们先从大局入手,仍然是对总体报文进行全局分析,再对细节报文进行拆解分析 版本 首先我们谈谈HTTP协议的版本 HTTP 0.9 (1991) HTTP 1.0 (1992 - 1…...

Linux学习笔记(centOS)—— 文件系统
目录 一、Linux中的文件 打开方式 二、目录结构 三、相关命令 切换目录命令 列出当前目录下的文件和目录命令 一、Linux中的文件 “万物皆文件。” 图1.1 所有文件 打开方式 图形化界面左上角的位置→计算机,打开以后就可以看到Linux全部的文件了…...

华视 CVR-100UC 身份证读取 html二次开发模板
python读卡:python读卡 最近小唐应要求要开发一个前端的身份证读卡界面,结果华视CVR-100UC 的读取界面是在是有点,而且怎么调试连官方最基本的启动程序都执行不了。CertReader.ocx 已成功,后面在问询一系列前辈之后,大…...