千家信息网

Shell编程三剑客之sed

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,sed工具sed简介:sed是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed 也可以在无交
千家信息网最后更新 2025年02月03日Shell编程三剑客之sed

sed工具

sed简介:
sed是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于 Shell 脚本中,用以完成各种自动化处理任务。
sed工作流程:
读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
执行:默认情况下,所有的 sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则 sed 命令将会在所有的行上依次行。
显示:发送修改后的内容到输出流。再发送数据后,模式空间将会被清空。
sed命令格式
sed [选项] '操作' 参数
常见的 sed 命令选项:
-e 或--expression=:表示用指定命令或者脚本来处理输入的文本文件。
-f 或--file=:表示用指定的脚本文件来处理输入的文本文件。
-h 或--help:显示帮助。
-n、--quiet 或 silent:表示仅显示处理后的结果。
-i:直接编辑文本文件。
常见的操作:
a:增加,在当前行下面增加一行指定内容。
c:替换,将选定行替换为指定内容。
d:删除,删除选定的行。
i:插入,在选定行上面插入一行指定内容。
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出。其通常与"-n"选项一起使用。
s:替换,替换指定字符。
y:字符转换。

sed命令用法示例:

1)、输出符合条件的文本(p )
sed -n 'p' test1.txt //输出所有内容,等同于 cat test1.txt

sed -n '3,5p' test1.txt //输出 3~5 行

sed -n 'p;n' test1.txt //输出所有奇数行,n 表示读入下一行资料

sed -n 'n;p' test1.txt //输出所有偶数行,n 表示读入下一行资料

sed -n '1,5{n;p}' test1.txt //输出第 1~5 行之间的偶数行(第 2/4/6 行)

sed -n '/the/p' test.txt //输出包含the 的行

sed -n '4,/the/p' test.txt //输出从第 4 行至第一个包含 the 的行

sed -n '/the/=' test.txt //输出包含the 的行所在的行号,等号(=)用来输出行号

sed -n '/\/p' test.txt //输出包含单词wood 的行,\<、\>代表单词边界

2)、删除符合条件的文本(d)
nl test1.txt | sed '3,5d' //删除第 3~5 行

nl test.txt |sed '/cross/d' //删除包含cross 的行

sed '/^[a-z]/d' test.txt //删除以小写字母开头的行

sed '/.$/d' test.txt //删除以"."结尾的行

3)替换符合条件的文本
sed 's/the/THE/' test1.txt //将每行中的第一个the 替换为 THE

sed 's/l/L/2' test1.txt //将每行中的第 2 个l 替换为L

sed 's/the/THE/g' test1.txt //将文件中的所有the 替换为THE

sed 's/^/#/' test1.txt //在每行行首插入#号

sed '/the/s/^/?/' test1.txt //在包含the 的每行行首插入?号

sed 's/$/EOF/' test1.txt //在每行行尾插入字符串EOF

4)迁移符合条件的文本
sed '/the/{H;d};$G' test1.txt //将包含the 的行迁移至文件末尾

sed '1,5{H;d};13G' test1.txt //将第 1~5 行内容转移至第13行后

sed '3aNew' test1.txt //在第 3 行后插入一个新行,内容为 New

sed '/the/aNew' test1.txt //在包含the 的每行后插入一个新行,内容为 New

sed '3aNew1\nNew2' test1.txt //在第 3 行后插入多行内容,中间的\n 表示换行

输出 内容 文本 文件 命令 处理 一行 条件 字符 输入 模式 空间 脚本 偶数 单词 工具 常见 情况 资料 新行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金蝶kis旗舰版修改数据库 数据库怎么样创建入库 汪曾祺小说软件开发 马鞍山宁创软件开发有限责任公司 视频网站需要数据库吗 什么软件开发集体经济学 苏州信息网络技术推荐咨询 数据库中修改表的字符集 手机app维保软件开发方案 视频服务器硬件配置 网络安全与执法工作辛苦吗 网络安全的需求分析报告 网络数据库在动态网页制作的地位 硬盘满了服务器硬盘灯黄色闪烁 衡益网络技术有限公司怎么样 服务器网络安全防护措施 证券交易记录数据库 王者转服务器要求 联盟怎么给不同服务器邮寄 游戏软件开发专业学什么好 怎么知道我的数据库用户名 吕梁微蚁付网络技术有限公司 剑三哪个服务器好 数据库技术与应用结业考试 软件开发的职业定位 查询在数据库用什么代码 软件开发涉及的内容 网络安全基地方案 数据库文件路径什么意思 北京黑马软件开发教学质量如何
0