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

【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.lryc.cn/news/2404877.html

相关文章:

  • 机器学习:聚类算法及实战案例
  • 预览pdf(url格式和blob格式)
  • 【p2p、分布式,区块链笔记 MESH】 论文阅读 Thread/OpenThread Low-Power Wireless Multihop Net
  • for AC500 PLCs 3ADR025003M9903的安全说明
  • moon游戏服务器-demo运行
  • 前端(vue)学习笔记(CLASS 7):vuex
  • [特殊字符] 在 React Native 项目中封装 App Icon 一键设置命令(支持参数与默认路径)
  • 基于深度学习(Unet和SwinUnet)的医学图像分割系统设计与实现:超声心脏分割
  • Qt学习及使用_第1部分_认识Qt---学习目的及技术准备
  • 如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
  • Java+Access综合测评系统源码分享:含论文、开题报告、任务书全套资料
  • 湖北理元理律师事务所:债务咨询中的心理支持技术应用
  • 时间序列预测:LSTM与Prophet对比实验
  • 阿里云域名怎么绑定
  • 能上Nature封面的idea!强化学习+卡尔曼滤波
  • Linux网桥实战手册:从基础配置到虚拟化网络深度优化
  • Design Theory and Method of Complex Products: A Review
  • yaffs2目录搜索上下文数据结构struct yaffsfs_dirsearchcontext yaffsfs_dsc[] 详细解析
  • Markdown基础(1.2w字)
  • LabVIEW与PLC液压泵测控系统
  • SQL-labs通关(level1-22)
  • 【HarmonyOS5】UIAbility组件生命周期详解:从创建到销毁的全景解析
  • 在命令行直接执行可以执行成功,加入crontab定时任务执行shell脚本不成功失败的问题解决方法
  • c++ 静态成员变量
  • 分布式爬虫代理IP使用技巧
  • 数据分析之OLTP vs OLAP
  • Flask音频处理:构建高效的Web音频应用指南
  • powershell 安装 .netframework3.5
  • dvwa5——File Upload
  • cv::FileStorage用法