第七节 流编辑器sed(stream editor)(7.2.1)

3,2 常用编辑命令
对文件内容的编辑命令 说明
d 删除匹配的行
p 打印匹配到的行
a文本内容 将文本内容添加到匹配行的下一行
i文本内容 将文本内容添加到匹配行的上一行
c文本内容 用文本内容替换匹配到的所有行
r 读入文件内容追加到匹配行的后面
R 读入文件一行的内容追加到匹配行的后面
w /dir/filename 将匹配行的内容另存到/dir/filename中
s /pattern/replacement/flag 根据正则表达式进行匹配,将匹配到的内容替换为replacment, flag可以指定 g(表示全局替换,默认只替换每行第一个), num1(表示)

示例:

生成测试文件

shell 复制代码
sed -e '\#adm#,$#:#@@@#g' testfile

a)删除行

shell 复制代码
sed '1d' testfile
sed '$d' testfile
sed '/root/d' testfile
sed '/root/! d' testfile

b)显示行

shell 复制代码
sed -n '1p' testfile
sed -n '$p' testfile
sed -n '/root/p' testfile
sed -n '/root/! p' testfile

c)添加,插入,替换行

shell 复制代码
sed '1ahello world' testfile 
sed '$ahello world' testfile
sed '/adm/ahello world' testfile
sed '/adm/ihello world' testfile
sed '/adm/! ihel1o\nworld' testfile

d)整合文件

shell 复制代码
vim numfile1
1
2
6
vim numfile2
2
3
4
sed '1rnumfile2' numfile1
sed '1Rnumfile2' numfile1

e)保存处理结果

shell 复制代码
sed '/root/w file' testfile
cat file
root: x: 0:0: root:/root:/bin/bash

f)字符替换

shell 复制代码
sed 's/:/##/' testfile
sed 's/:/##/2' testfile 
sed 's/:/##/g' testfile 
sed 's/^./##/g' testfile
sed 's/^\< [a-z]*[a-Z \>//' testfile 
sed 's/^\(...\)\(t\)/\2/g' testfile #元素向后引用
t: x: 0:0: root:/root:/bi n/bash
相关推荐
dingdingfish7 小时前
GNU Parallel 学习 - 第1章:How to read this book
bash·shell·gnu·parallel
史丹利复合田10 小时前
【无标题】vscode远程连接,服务器端配置
ide·vscode·编辑器
wtsolutions11 小时前
图片GPS数据编辑器批量处理功能详解 - 高效管理大量图片的位置信息
编辑器·gps·图片·照片
cooldream200911 小时前
Vim 报错 E325:swap 文件冲突的原理、处理流程与彻底避免方案
linux·编辑器·vim
wtsolutions14 小时前
如何用图片GPS数据编辑器解决批量图片位置信息管理问题
编辑器·gps·图片·照片
山峰哥14 小时前
SQL调优实战密码:索引策略与Explain工具深度破局之道
java·开发语言·数据库·sql·编辑器·深度优先
AI分享66616 小时前
VSCode如何使用claude code(VS Code + Claude API 详细教程)(API 配置图文全攻略)
ide·vscode·编辑器
森叶19 小时前
Node.js 跨进程通信(IPC)深度进阶:从“杀人”的 kill 到真正的信号
node.js·编辑器·vim
中科院提名者1 天前
如何修改VScode里的注释
ide·vscode·编辑器
艾莉丝努力练剑1 天前
人工智能 Gemini 2.5 Pro:深度解析技术突破与实战应用
c++·人工智能·python·ai·大模型·编辑器·gemini