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

【Linux】sed 命令详解及使用样例:流式文本编辑器

【Linux】sed 命令详解及使用样例:流式文本编辑器

引言

sed 是 Linux/Unix 系统中一个强大的流式文本编辑器,名称来源于 “Stream EDitor”(流编辑器)。它允许用户在不打开文件的情况下对文本进行筛选和转换,是命令行环境下处理文本的重要工具。

基本功能

  1. 文本替换:查找并替换文本中的字符串
  2. 选择性处理:对匹配特定模式的行进行操作
  3. 文本删除:删除匹配特定模式的行
  4. 文本插入:在指定位置插入文本
  5. 行处理:按行号或范围处理文本

常用选项

  • -n:禁止自动打印模式空间内容,需要使用p命令手动打印
  • -e:允许在同一行中执行多个编辑命令
  • -i:直接修改原文件而不是输出到标准输出
  • -r-E:使用扩展正则表达式
  • -f:从文件中读取编辑命令

常用命令

  • s/pattern/replacement/flags:替换匹配的文本
    • 常用标志(flags):g(全局)、i(忽略大小写)、n(第n次出现)
  • p:打印匹配行
  • d:删除匹配行
  • a\:在匹配行后追加文本
  • i\:在匹配行前插入文本
  • c\:替换匹配行
  • y/源字符集/目标字符集/:字符转换

地址匹配

  • n:指定行号
  • n,m:指定行号范围
  • /pattern/:匹配正则表达式的行
  • addr1,+n:从addr1开始的n行
  • addr1,~n:从addr1开始,到下一个n的倍数行

使用示例

  • 利用sed命令选择并显示/etc/passwd中的最后一行
sed -n '$p' /etc/passwd

  • 利用sed命令选择并显示/etc/passwd中有root的行
sed -n '/root/p' /etc/passwd

  • 利用sed命令选择并显示/etc/passwd中以mail为开头的行
sed -n '/^mail/p' /etc/passwd

  • 利用sed命令将/etc/passwd中所有:替换为–
sed 's/:/-/g' /etc/passwd

  • 利用sed命令删除/etc/passwd中所有以首字母a到s开头的行
sed '/^[a-s]/d' /etc/passwd

  • 利用sed命令删除/etc/passwd中所有含有大写字母的行
sed '/[A-Z]/d' /etc/passwd

  • 结合sed命令列出/etc目录下目录文件的个数
ls -l /etc | sed -n '/^d/p' | wc -l

  • 结合sed命令查看用户为root的进程信息
ps aux | sed -n '/^root/p'

  • 结合sed命令查看用户为root的进程信息,将用户root信息改为大写ROOT
ps aux | sed -n '/^root/p' | sed 's/^root/ROOT/'

  • 利用sed命令将etc下目录文件中详细信息内容中的数字改为*号
ls -l /etc | sed 's/[0-9]/*/g'

参考资料

  • https://www.runoob.com/linux/linux-comm-sed.html
http://www.xdnf.cn/news/913771.html

相关文章:

  • 【网页端数字人开发】基于模型SAiD实现嘴型同步
  • 三模冗余设计
  • 书籍推荐 --- 《筚路维艰:中国经济社会主义路径的五次选择》
  • 瑞它鲁肽 Retatrutide
  • Delphi 实现远程连接 Access 数据库的指南
  • 为什么HDI叠孔比错孔设计难生产
  • 调试时两个can盒子互连实现在一台电脑上自发自收的接线
  • Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)
  • WiFi通信应用开发【保姆级】+配置ESP8266芯片的WiFi station和soft-AP + station工作模式!!!
  • 算力时代的四大引擎:CPU、GPU、NPU、DPU 深度解析
  • Vue3 + threeJs 定义六种banner轮播图切换动画效果:百叶窗、手风琴、拼图、渐变、菱形波次、圆形扩展
  • 如何利用 Redis 实现跨多个无状态服务实例的会话共享?
  • 讲解:Java I/O 流体系,并举例每个类的使用
  • 【YOLOs-CPP-图像分类部署】05-OpenVino加速
  • URL 带有 /../ 导致可以访问其他目录--路径穿越问题
  • SON.stringify()和JSON.parse()之间的转换
  • 优化电脑的磁盘和驱动器提高电脑性能和延长硬盘寿命?
  • Unity3D仿星露谷物语开发60之定制角色其他部位
  • Jpackage
  • 信号电压高,传输稳定性变强,但是传输速率下降?
  • Window Server 2019--11 虚拟专用网络
  • 软件测试python学习
  • 第十届电子技术和信息科学国际学术会议(ICETIS 2025)
  • 如何选择正确的团队交互模式:协作、服务还是促进?
  • 【普及+/提高】洛谷P2114 ——[NOI2014] 起床困难综合症
  • 耦合和内聚
  • BECKHOFF(倍福)PLC --北尔HMI ADS Symbolc 通讯
  • 电动螺丝刀-多实体拆图建模案例
  • 全球数控金属切削机床市场:现状、趋势与应对策略
  • # 从底层架构到应用实践:为何部分大模型在越狱攻击下失守?