当前位置: 首页 > article >正文

Linux中sed命令的使用技巧

一、sed语法介绍

sed命令主要用于文本内容的编辑,默认只处理模式空间,不处理原数据。
命令格式:

sed [option] 'command' filename

示例:删除空白行 sed ‘/^\s*$/d’ filename
option 参数:
-n:只有经过sed特殊处理的那一行才会被列出
-e:直接在命令行模式上进行sed的动作编辑
-i:直接修改读取的文件内容,而不是输出到终端
command 参数
a:追加,可以接字符串
i:插入
d:以行为单位删除
c:以行为单位的替换
s:在行中搜索并替换
p:以行为单位的显示

二、实例介绍

2.1在文件file第四行后添加一行

Sed -e 4a\new/ line testline
其中:
-e:直接修改
4:第4行
a:追加
/:空格需要加反斜杠

2.2以行为单位的新增和删除

将testfile的内容列出并且列出行号,同时,将第2-5行删除。
nl testfile | sed ‘2,5d’

其中:
2,5:2到5
d:删除
nl:列出内容,并标注行号,空白行不标注

只删除第2行
nl testfile | sed ‘2d’

删除2到最后一行
nl testfile | sed ‘2,$d’

在第二行后(即第三行)加入hello;
nl testfile | sed ‘2a hello;’

在第二行前加入
nl testfile | sed ‘2i hello;’

增加两行以上
nl testfile | sed ‘2a hello;
hello’

注:必须使用\来进行新行标记

2.3以行为单位的替换和显示

nl testfile | sed ‘2,5c hello;’
注:将2到5行替换为一行hello

2.4数据的搜索和显示(以此显示行号)

nl testfile | sed -n‘hello;’

2.5数据的搜索和删除

nl testfile | sed ‘/oo/d’

2.6数据的搜寻和执行

nl testfile | sed -n ‘/oo/{s/oo/kk/;p/q}’
注:找到oo对应行,然后把oo改为kk
其中:p打印,q退出

2.7数据的查找和替换

Sed‘s/要被取代的字符串/新的字符串/g’ testfile

Sed -e‘s/oo/kk/g’ testfile
注:把oo替换为kk,并将该文件输出到标准输出,不修改原文件
-e输出

Sed -e‘s/oo/kk/’ testfile
注:把每行第一次出现的oo替换为kk,并将该文件输出到标准输出,不修改原文件

Sed -i‘s/oo/kk/g’ testfile
注:把oo替换为kk,并将该文件输出到标准输出,修改原文件

Sed -i‘s/oo/kk/g’ .txt
批量操作当前目录下所有.txt后缀文件

三、复杂实例

3.1将t1.txt文件每一行结尾为.则修改为!

Sed -i \s/.$/!/g t1.txt
注.记得加反斜杠
$表示结尾


http://www.kler.cn/a/464324.html

相关文章:

  • 【2025最新计算机毕业设计】基于Spring Boot+Vue影院购票系统(高质量源码,提供文档,免费部署到本地)
  • 【C#深度学习之路】如何使用C#实现Yolo5/8/11全尺寸模型的训练和推理
  • Leetcode 1254 Number of Closed Islands + Leetcode 1020 Number of Enclaves
  • Appium 2.0:移动自动化测试的革新之旅
  • 景区自助售卡机与定点酒店的合作双赢之策-景区酒店方案
  • Lianwei 安全周报|2025.1.2
  • 计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群
  • httpx.AsyncClient报错ProxyError: 504 Gateway Time-out
  • [CTF/网络安全] 攻防世界 Web_php_unserialize 解题详析
  • [算法] [leetcode-349] 两个数组的交集
  • [网络安全] DVWA之CSRF攻击姿势及解题详析合集
  • SAP SD学习笔记23 - 无偿出荷(免费交货)与继续无偿出荷(继续免费交货)
  • OpenCV-Python实战(15)——像素直方图均衡画
  • stm32 智能语音电梯系统
  • [AHK]用大模型写ahk脚本
  • Android Camera压力测试工具
  • 《代码随想录》Day23打卡!
  • Wonder Dynamics技术浅析(四):表情捕捉与面部动画
  • 服务器systemctl命令使用与go项目zero框架中实战
  • android.enableJetifier=true的作用:V4包的类自动编程成了androidx包的类,实现androidx的向下兼容
  • SpringMVC(1)——SpringMVC配置和基本原理
  • VMware安装配置
  • 远程医疗系统如何有效防护CC攻击
  • 卸载yum下载的jenkins
  • Java 线程池如何实现 -- 解读 ThreadPoolExecutor
  • 【LeetCode】827、最大人工岛