您的位置:首页 > 运维架构 > Linux

Linux三剑客命令常见用法之sed

2017-10-26 11:07 555 查看
sed是一种流编辑器,全程Stream EDitor,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。工作原理大概是sed取出模式中匹配到的文本在“模式空间”中修改(想象成加工场),并不会对源文件修改。一些高级的命令参数会用到“保持空间(想象成仓库)”,下次细说sed的高级用法。
一、基本用法的格式

sed 参数 ‘/地址定界/编辑命令’ 文件

二、常见参数
-n 静默模式,不自动输出
-e 多点编辑功能
-f 从指定的文件读取命令脚本、
-i 直接对源数据编辑

三、地址定界
# 指定第#行
#,# 指定第#行到第#行
#,#+n 指定第#行到第#+n行
#,/PATTERN/ 指定第#行到被PATTERN指定的行
/PATTERN/ 被此模式匹配到的每一行
/PATTERN1/,/PATTERN2 模式1与模式2之间的行

三、常用命令
d 删除匹配到的行
p 打印匹配到的行
a 在匹配到的行的后面追加
i 在匹配到的行的前面追加
c 在匹配到的行的前面和后面都追加
w 将匹配到的行另存为
= 显示出匹配到的行的行号
r 从某文件中读行
! 取反
s/PATTERN1/PATTERN2/g 全局将PATTERN1替换成PATTERN2
# sed '/^#/d'/etc/fstab 删除以#开头的行
# sed -n '/^#/p' /etc/fstab 只打印出以#开头的行
# sed '/^UUID/a hello sed' /etc/fstab 在以UUID开头的行后面加入一行为hello sed
# sed '/^UUID/w /tmp/text.txt' /etc/fstab 将以UUID开头的行放在text.txt文件中保存
# sed '/^UUID/=' /etc/fstab 显示匹配到模式的行号
# sed '6r text.txt' /etc/fstab 读取text.txt的内容放置fstab文件第六行后面
# sed 's/^UUID/uuid/g' /etc/fstab 将以UUID开头的UUID替换成uuid
# sed '1,4d' /etc/fstab 删除1到4行
# sed -n '1~2p' /etc/fstab 打印出奇数行

四、几个练习





以上就是自己对sed命令最简单的归纳,如有错误,请指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息