1.功能简介
sed,是一种流编辑器,Linux三剑客命令之一。其特点为非交换式、逐行处理。
2.语法格式
sed [OPTION]... {script-only-if-no-other-script} [input-file]..
命令 参数 条件-处理 (指令) 处理文件信息
其中处理动作可由-e指定多个处理动作,input-file为输出文件,可指定多个。
3.语法说明
参数选项 | 解释 |
-n | 取消默认sed输出,常于sed内置命令p一起使用 |
-i | 直接把修改结果写入文件,不用-i,sed修改的是内存数据 |
-e | 多次编辑不需要管道符 |
-r | 支持扩展正则 |
sed的内置命令用于对文件进行不同的操作功能,如对文件增删改查。
sed常用的内置命令字符
sed的内置命令字符 | 解释 |
a | 对文本追加,在指定行后面添加一行 |
d | 删除匹配的行 |
i | 表示插入文本,在指定行前添加一行或多行文本 |
p | 打印匹配行的内容 |
s/正则/替换内容/g | 匹配正则内容,然后替换内容,结尾g表示全局匹配 |
sed匹配范围
范围 | 解释 |
空行 | 全文处理 |
单行模式 | 指定文件某一行 |
/pattern/ | 被模式匹配到的每一行 |
范围区间 | 10,20 十到二十行 ,10,+5 第十行向下5行 |
步长 | 1~2,表示1、3、5、7、9行 |
例题
用sed取出虚拟机的IP地址
[root@wish-172.20.20.80 ~ ]#ifconfig |sed -e '2s/.*inet//' -e '2s/net.*//p' -n
172.20.20.80
[root@wish-10.0.0.200 ~]# ifconfig |sed '2p' -n |sed 's/.*inet//g'|sed 's/net.*//g'
10.0.0.200