常用sed用法

文本处理三兄弟三剑客sed awk grep常用用法 阅读详情

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed基本格式

sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)

打印单行

  sed -n '行号p' stop_crm_http_forcboss_new_01.sh

打印范围
sed -n '行号,行号p' stop_crm_http_forcboss_new_01.sh
打印有此模式的行

`sed -n '/cboss/'p stop_crm_http_forcboss_new_01.sh  
  等于  
cat stop_crm_http_forcboss_new_01.sh|grep cboss`
    最后一行插入字符
  sed -i '$a\要插入的字符'
   文件名在指定行行首插入字符(s 表示替换指定字符;^表示匹配行的开始,如:/^sed/匹配所有以sed开头的行。$表示匹配行的结束,如:/sed$/匹配所有以sed结尾的行。)
  sed -i '行号s/^/要插入的字符/' 文件名

sed中使用变量, 用单引号包含双引号来引用变量,或者使用双引号。g表示 获得内存缓冲区的内容,并替代当前模板块中的文本。

  sed 's/'"${tmp}"'/'"${new_tmp}"'/g' ${new_file_name}
sed "s/${tmp}/${new_tmp}/g" ${new_file_name}

有时替换不想全部替换,可以使用,如下,从第二处匹配的地方开始替换

sed 's/'"${tmp}"'/'"${new_tmp}"'/2g' ${new_file_name}
删除行首空格
sed 's/^[ \t]*//g'
删除行末空格
sed 's/[ \t]*$//g'
删除所有的空格
sed 's/[[:space:]]//g'
删除空白行:
sed '/^$/d' file
删除文件的第2行:
sed '2d' file
删除文件的第2行到末尾所有行:
sed '2,$d' file
删除文件最后一行:
sed '$d' file
删除文件中所有开头是test的行:
sed '/^test/'d file

sed中使用或者,将A或者B替换成C。用中括号,里面使用‘|’符号

sed ‘s/[A|B]/C/g’ stop_crm_http_forcboss_new_10.sh

已匹配字符串标记&(正则表达式 \w+ 匹配每一个单词,使用 [&] 替换它,& 对应于之前所匹配到的单词)

echo this is a test line | sed 's/\w\+/[&]/g'
[this] [is] [a] [test] [line]

所有以192.168.0.1开头的行都会被替换成它自已加localhost:

sed 's/^192.168.0.1/&localhost/' file
192.168.0.1localhost

一般sed使用”/”作为定界符,但是也是可以用任何的定界符

sed 's:test:TEXT:g'
sed 's|test|TEXT|g'
sed 's:/bin/sh:/bin/bash:g' tmp.txt
当转换的内容含有定界符,需要转义

sed 's/\/bin\/sh/\/bin\/bash/g' tmp.txt

多点编辑:e命令( 同一行里执行多条命令, -e 等价的命令是 –expression)

sed -e '1,5d' -e 's/test/check/' file

从文件读入:r命令
file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面:
sed ‘/test/r file’ filename

写入文件:w命令
在example中所有包含test的行都被写入file里:
sed -n ‘/test/w file’ example

插入(行上):i\命令
将 this is a test line 追加到以test开头的行前面:
sed ‘/^test/i\this is a test line’ file

在test.conf文件第5行之前插入this is a test line:
sed -i ‘5i\this is a test line’ test.conf

下一个:n命令
如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续:
sed ‘/test/{ n; s/aa/bb/; }’ file

变形:y命令
把1~10行内所有abcde转变为大写,两边的字符数需要相等。注意,正则表达式元字符不能使用这个命令:
sed ‘1,10y/abcde/ABCDE/’ file

退出:q命令
打印完第10行后,退出sed
sed ‘10q’ file

保持和获取:h命令和G命令
在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。接着模式空间被清空,并存入新的一行等待处理。

sed -e '/test/h' -e '$G' file

在这个例子里,匹配test的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保持缓存区的特殊缓冲区内。第二条语句的意思是,当到达最后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中的行的末尾。在这个例子中就是追加到最后一行。简单来说,
任何包含test的行都被复制并追加到该文件的末尾
。保持和互换:h命令和x命令
互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换:
sed -e ‘/test/h’ -e ‘/check/x’ file

打印奇数行或偶数行
方法1:

sed -n 'p;n' test.txt #奇数行
sed -n 'n;p' test.txt #偶数行

方法2:

sed -n '1~2p' test.txt #奇数行
sed -n '2~2p' test.txt #偶数行打印

匹配字符串的下一行

grep -A 1 SCCFILE                                           #1可以变,也可以打印SCC匹配行下两行
sed -n '/SCC/{n;p}' FILE
awk '/SCC/{getline; print}' FILE
基于 MATLAB 的综合能源系统建模案例  电平衡约束:P_{gt}(t)+P_{grid}(t)-P_{eb}(t)-P_{load}(t)=0,其中 P_{grid}(t) 为与外部电网的交互功率(正表示购电,负表示售电)。- 电锅炉的热输出功率 Q_{eb} 与输入电功率 P_{eb} 的关系为:Q_{eb}=\eta_{eb}\times P_{eb},其中 \eta_{eb} 为电锅炉的热效率。- 燃气轮机的余热回收功率 Q_{gt} 与发电功率也存在一定关系,例如:Q_{gt}=c\times P_{gt},c 为余热回收比例系数。 阅读详情

相关推荐

深入理解C++23的Deducing this特性(上):基础概念与语法详解

C++23标准中引入的"Deducing this"特性是一项重大革新,它不仅改变了我们编写成员函数的方式,还为模板元编程和设计模式实现带来了新的可能。

weixin_61470881的博客 1333

用sed命令如何能把一个匹配模式替换为换行符

将空格替换为换行符。 两种方法 1使用\n代替换行符 sed -e 's/ /\n/g' 2 直接使用换行符 s/ /\ /g

黑会峰 1万+

跟着Synopsys报告,一步步拆解车规芯片FMEDA计算(含公式与避坑点)

本文详细解析了车规芯片FMEDA计算的全流程,基于Synopsys报告拆解实战指南,涵盖基础失效率建模、安全机制效能评估及安全指标合成等关键步骤。通过公式解析、数据准备清单和避坑点分享,帮助工程师掌握ISO26262标准下的硬件量化分析技术,提升车载系统设计可靠性。

weixin_30460489的博客 195

使用sed修改最后一行数据

需求 原始数据文件内容如下: {"name":"vincent","age":"12"} {"name": "tom", "age": "12"} {"name": "jerry", "age": "13"} {"name": "catlina", "age": "22"} {"name": "sofia", "age": "14"} 希望变成下面的格式: [{"name":"vincent","age":"12"}, {"name": "tom", "age": "12"}, {"name": "jer

vincent_duan的专栏 5331

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 653

Windows 11下ROS2 Humble与PyCharm无缝集成实战(避坑指南+完整配置流程)

本文详细介绍了在Windows 11系统下如何实现ROS2 Humble与PyCharm的无缝集成,包括环境准备、ROS2 Humble安装、PyCharm配置以及C++与Qt5混合开发的实战技巧。通过避坑指南和完整配置流程,帮助开发者高效搭建稳定的机器人开发环境,特别适合Windows平台的ROS2开发者。

weixin_28710999的博客 367

linux 删除行首空格

linux 删除行首空格 https://www.cnblogs.com/shiyiwen/p/5609702.html 在UNIX上,使用sed命令进行字符串处理中,常常遇到的问题,就是行首行尾的空格怎么删除。 下面介绍sed是怎样实现的,当然awk同样可以。 1:行首空格 sed 's/^[ \t]*//g' 说明: 第一个/的左边是s表示替换,即将空格替换为空 第一个...

野生码农 2108

Python脚本自动化芯片设计?PyAether实战教程带你玩转EDA

本文通过PyAether实战教程,详细介绍了如何利用Python脚本实现芯片设计自动化。内容涵盖环境搭建、核心对象模型解析,并重点演示了原理图自动生成、参数化单元创建及设计验证流程集成,帮助EDA工程师从重复性手动操作中解放,显著提升设计效率与一致性。

e4f5g6h的博客 1316

sed 命令使用

sed 命令使用

云满笔记 1万+

倍福TC3 PLC高速采集实战:如何用PLC-Recorder实现0.24ms级时间戳同步

本文详细介绍了倍福TC3 PLC与PLC-Recorder实现0.24ms级时间戳同步的工程实践方案。通过硬件拓扑设计、时间源选择优化、报文结构封装及同步验证方法,为工业自动化领域的高精度数据采集提供了可靠解决方案,特别适用于精密装配、激光切割等微秒级同步要求的场景。

weixin_29193359的博客 372

【WRF-Chem教程-附录 C】闪电-NOx 参数化方案详解

闪电-NOx 参数化方案详解

WW、forever的博客 974

Shell脚本之sed的使用

1.sed命令;主要作用是查找;新增 删除 和修改替换。 user.txt daokr#cat user.txt ID Name Sex Age 1 zhang M 19 2 wang G 20 3 cheng M 10 4 huahua M 100 查找命令:-n 和 p(prin...

weixin_30868855的博客 334

从0入门LocoTrack:6倍加速的SLAM追踪新范式实战指南

传统点追踪方法(如CorrTracker、TAPIR)在处理大规模场景或实时任务时,要么精度不足,要么速度太慢。而LocoTrack通过“局部4D相关性”和“Transformer全局关联”的创新设计,实现了精度与速度的双重突破速度:比现有SOTA方法快6倍,吞吐量高达数万点/秒;精度:在Kinetics、DAVIS等数据集上,定位误差显著低于传统方法;鲁棒性:能应对低纹理、动态场景等复杂环境,这是传统方法的“噩梦场景”。

m0_71589036的博客 95

sed常用用法

文章目录sed工具输出符合条件的文本( p)删除符合条件的文本( d)替换符合条件的文本(s)迁移符合条件的文本使用脚本编辑文件使用sedsed直接操作文件示例分组操作 sed工具 sed(stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于shell脚本中,用以完成各种自动化处理任务。 sed的工作流程主要包括读

jjswap的博客 308

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

sed常用的用法

sed 常用用法总结sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。

在雨一方 1723

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

sed常用用法总结

sed命令的语法格式 sed的命令格式: sed [option] 'sed command'filename sed命令的选项(option) -n :只打印模式匹配的行 -e :直接在命令行模式上进行sed动作编辑,此为默认选项 -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作 -r :支持扩展表达式 -i :直接修改文件内容 常用的命令匹配模式 x x为行号 x,y 表示行号从x到y x~step x 指起始匹配行, step 指步

congguanliu5887的博客 555

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

sed常用用法的小结

sed常用用法的小结1. 常用选项2. 常用动作3. 实例增加行删除行打印行替换整行替换行内的部分内容(含大小写转换)连续命令 sed(stream editor)命令是一个面向字符流的非交互式编辑器,是按行来处理文本内容的;它还能配合管线来使用,非常高效 我之所以想学会使用这个命令,是因为:当同一个长文本每次执行只需要修改一个小地方时,使用sed能直接对文本操刀,避免使用复杂的python文本生...

Yvettre的博客 1183

Sed命令常用用法

基本语法: sed [options] commands inputfile options: -n:取消默认输出 eg. sed -n '3 p' test.txt -e:多条子命令时使用 eg. sed -e 's/a/A/' -e 's/b/B/' test.txt eg. sed -e 's/a/A/;s/b/B/' test.txt -f:将多条命令写在脚本中,从脚本中读取命令,此时co...

Qmeng的博客 878

sed的几个常用用法

  1、注释掉某一行  sed -i -e 2 s/^/#/ test  这张命令的作用是将test文件里的第二行注释掉  也可以多行注释,如:  sed -i -e 2 s/^/#/ -i -e 3 s/^/#/ test  这句话将注释test文件的第二和第三两行内容     2、取消行前注释  sed -i s/#This is a test/ This is a test/g

xuyaqun的专栏 1万+

Sed工具常用用法总结

Sed是一种好用的流编辑工具,在文本里进行替换、删除、编辑操作十分方便。学完了Sed的一些常用操作,下面总结一下,方便日后翻阅。sed [选项] {指令} 文件选项: -n 加入这个可以使sed命令执行后屏蔽改后内容的输出 -i 将执行完的指令写入文件,不然执行完文件内容不做改变 -e 同时执行多个指令,指令间用;分隔 -p 打印,和-n配合可以输出指

Cozz1995 590

Shell常用命令sed的语法逻辑与常见用法

1. 参考 官方手册:https://www.gnu.org/software/sed/manual/sed.html 内置Manual: man sed 2. 简介 官方:sed(stream editor) 是一个流编辑器。 流编辑器用于对输入流(文件或来自管道的输入)执行基本的文本转换。 3. sed基本用法 3.1. sed命令语法 sed OPTIONS... [SCRIPT] [INPUTFILE...] # OPTIONS 选项 # SCRIPT 执行脚本 # INPUTFILE 输

规则边缘的博客 1061

Linux常用指令之——sed用法

还可以用于将文本中某个字符串替换成另一个文件中的内容。例如,我们要将文本文件。还可以用于删除文本中某个字符串所在行的所有内容。还可以用于在文本中查找某个字符串并显示其所在行。例如,我们要在文本文件。还可以用于在文本中指定行后插入一个文件中的内容。例如,我们要在文本文件。还可以用于在文本中指定行后添加一行或多行。例如,我们要在文本文件。例如,我们要在文本文件。例如,我们要将文本文件。还可以用于删除文本中的某行或多行。例如,我们要将文本文件。例如,我们要将文本文件。命令中执行多个操作。例如,我们要将文本文件。

一颗奋起萌发的种子的博客 5108

本人常用的sed命令用法

  如果使用sed命令修改文件,需要为sed命令指定【-i】选项(i,insert表示插入指令),下面是本人常用到的几种场景: 1.在文件最后一行的下一行添加配置   如:在配置文件/etc/profile最后一行添加:export FAP_HOME=/opt/FAP_HOME [root@ZWZF-CWY-LZY-12 ~]# sed -i '$a export FAP_HOME=/opt...

查拉图斯特拉面条的博客 1265

12.文本处理工具sed常用用法和注意点

文本处理的工具sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’ 的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到...

weixin_34341117的博客 196

【复习】sed用法,有的不常用已忘记了

sed 的详细用法 sed:stream editor 流编辑器sed的工作模式;sed是一个行文本编辑器,默认每次处理文本中所匹配到一行内容到模式空间,然后用后面的命令进行操作,操作完成之后,会把模式空间 里面的内容实现在屏幕上,然后把模式空间的中的内容删除,同时把下一行所匹配到内容读入模式空间 为了下面演示方便,我们创建一个文本文件a.text #cat a.text zz xx to...

坂田搬运工 262

Shell之Sed常用用法

替换配置文件中引号内的全部内容: 替换单引号中,非双引号的所有内容*代表所有内容 如下转自 http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html 1.简介 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 s...

weixin_33858249的博客 94
上一篇: Linux中vi显示中文乱码的问题
下一篇: shell脚本名称直接执行sh脚本
灰帅
博客等级 码龄12年 13粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值