sed命令

243 阅读1分钟

sed命令解析

sed工具概述

Stream EDitor,流式编译器

  • 非交互,基于模式匹配过滤及修改文本
  • 逐行处理,并将结果输出到屏幕
  • 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等各种操作

命令格式解释

主要用法

  • 格式1: 前置命令 | sed [选项] '编辑指令'
  • 格式2: sed [选项] '编辑指令' 文件
[root~]# sed -n ’^id‘ /etc/inittab 

常见命令选项

  • -n: 屏蔽默认输出(全部文本)
  • -i: 直接修改文件内容
  • -r:启动扩展的正则表达式

条件

  • 行号可以使用数字表示单行
  • 3,5表示连续的多行
  • 省略条件,则默认逐行处理全部文本
  • 匹配正则时,需要使用//

基本的处理动作

  • 常见动作指令

2021-06-16 08-38-06屏幕截图.png

常见处理操作

输出文本

sed -n 'p' a.txt        #输出所有行,等同于cat a.txt
sed -n '4p' a.txt       #输出第四行
sed -n '4,7p' a.txt     #输出第4~7行
sed -n '/^bin/p' a.txt  #输出以bin开头的行
sed -n '$=' a.txt       #输出文件的行数

删除文本

sed '3,5d' a.txt  # 删除第3~5行
sed '/xml/d' a.txt # 删除所有包含xml的行
sed '/xml/!d' a.txt # 删除不包含xml的行,!符号表示取反
# 此例中只做输出,不更改原文件(若需要更改,应添加选项-i)

替换文本

sed 's/xml/XML/' a.txt   # 将每行中第一个xml替换为XML
sed 's/xml/XML/3' a.txt  # 将每行中的第3个替换为XML
sed 's/xml/XML/g' a.txt  # 将所有xml都替换XML

sed的文本处理动作

2021-06-16 08-57-42屏幕截图.png