首页
Linux教程
Linux实战教程
Shell教程
Mysql教程
Keepalived教程
Linux基础教程
Linux进阶教程
运维题库
运维干货
视频教程
运维资讯
资源下载
关于我们
首页 Linux进阶教程2.05 Linux三剑客sed

2.04 Linux三剑客grep

2.06 Linux三剑客awk

1.1 sed 命令介绍

sed是一种流编辑器,它是文本处理中非常好的工具,能够完美的配合正则表达式使用

处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space);接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕;接着处理下一行,这样不断重复,直到文件末尾。

处理时文件内容并没有改变,除非你使用重定向存储输出或者 -i 参数

sed主要用来自动编辑一个或多个文件,可以将数据行进行替换、删除、新增、选取等特定工作,简化对文件的反复操作,编写转换程序等。

1.2 sed 常用参数

参数 作用
-n 取消命令的默认输出
-i 直接修改文件内容,而不是输出到终端
-r 支持扩展表达式
-e 允许多次编辑

1.3 sed 内置命令字符

字符 作用
s 替换
g 全局(global)
p 打印(print)
d 删除(delete)
a 追加(append)
i 插入(insert)
= 显示行号

1.4 sed 使用实例

直接使用sed命令

# 替换单个字符
sed "s/root/oldboyedu/" /etc/passwd

# 替换全局字符
sed "s/root/oldboyedu/g" /etc/passwd

# 删除第一行
sed "1d" /etc/passwd

# 删除1-3行
sed "1,3d" /etc/passwd

# 在第每一行的下方追加新一行
sed "a/oldboy/" /etc/passwd

# 在第每一行的上方插入新一行
sed "i/oldboy/" /etc/passwd

# 显示行号
sed "=" /etc/passwd

1.4.1 -n 取消命令的默认输出

# 不显示输出
sed -n "s/root/oldboy/" /etc/passwd

# 显示输出
sed -n "s/root/oldboy/p" /etc/passwd

1.4.2 -i 修改文件内容

# 替换全局a字符为A字符
sed -i "s/a/A/g" a.txt

# 替换后保留源文件
sed -i.bak "s/a/A/gp" a.txt

1.4.3 -r 支持扩展表达式

扩展表达式主要用于() \n,匹配第n个括号的内容

# 将bbbb替换为BbbB
sed -r "s/b(bb)b/B\1B/g" a.txt

1.4.4 -e 允许多次编辑

# sed -e "s/red/green/;s/cat/dog/" test.txt

本文链接:https://www.yunweibase.com/archives/669

2.04 Linux三剑客grep

2.06 Linux三剑客awk

网友评论comments

发表评论

邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 运维基地 保留所有权
扫二维码
扫二维码
返回顶部