1. 首页 > 快讯

Shell编辑器《sed命令》 常用总结,程序员必备的基本命令

前言

sed 是一个流编辑器。它是文本处理中非常有用的工具。它可以与正则表达式完美配合使用,具有非凡的功能。在处理过程中,当前处理的行被存储在一个临时缓冲区中,称为“模式空间”,然后使用sed 命令来处理缓冲区的内容。处理完成后,将缓冲区的内容发送到屏幕。然后处理下一行,并重复直到文件末尾。除非您使用重定向来存储输出,否则文件内容不会更改。 sed主要用于自动编辑一个或多个文件、简化对文件的重复操作、编写转换程序等。

总结一下:

1.首先了解特殊字符:

^ 表示行的开头。例如:/^#/匹配以# 开头的内容。 $ 表示一行的结束。例如:/}$/匹配以} 结尾的内容。 \ 表示单词的开头。例如,\abc 表示以abc 开头的单词。 \ 表示单词的结尾。例如,abc\ 表示以abc 结尾的单词。代表任意单个字符。 * 表示某个字符出现0 次或多次。 [ ] 字符集。例如:[abc]表示匹配a或b或c,[a-zA-Z]表示匹配全部26个字符。如果里面有^,则表示相反的意思,如[^a],表示非a字符。注意:sed与正则表达式关系密切,可以使用很多正则匹配。

1.显示文件中匹配的行

cat tmp.txt|sed -n '/匹配字符正则/p' (-n 不打印所有文件)

2.显示文件所在行

cat tmp.txt|sed -n '1p' --第一行--

Shell编辑器《sed命令》 常用总结,程序员必备的基本命令

cat tmp.txt|sed -n '1,3p' --一到三行--

3.替换文件中的字符

猫tmp.txt | sed 's/ee/ff/' 或sed 's/ee/ff/' tmp.txt --将tmp.txt文件每一行中第一个匹配的ee替换为ff,而不改变原文档--

猫tmp.txt | sed 's/ee/ff/g' 或sed 's/ee/ff/g' tmp.txt --将tmp.txt 文件中所有ee 替换为ff,不改变原文件-- sed 's/ee/ff/' tmp.txt tmp2.txt -- 将tmp.txt文件中的ee替换为ff,不改变原文件,生成新的tmp2.txt文件--

更改原文件:sed -i 's/ee/ff/' tmp.txt

4. 替换指定行

cat tmp.txt |sed '3,5s/ee/ff/' -- 将文件中的第3 至5 行替换为ee 作为ff--

5、更换配套线路

猫tmp.txt | sed '/^w/s/ee/ff/' --tmp.txt 文件中以w 开头的行中的ee 替换为ff--

Shell编辑器《sed命令》 常用总结,程序员必备的基本命令

猫tmp.txt | sed '/^w/,/^x/s/ee/ff/' --将tmp.txt文件中w到x开头的行中的ee替换为ff--

6. 批量重命名文件的示例包括:

aa.txt bb.txt cc.txt 重命名为aa.jpg bb.jpg cc.jpg

ls |sed 's/\(.*\)\.txt/mv \1\.txt \1\.jpg/'|sh

\( )\为内存空间,记录匹配的aa bb cc,\1为内存空间中第一个匹配生成mv的命令码,通过sh执行--

7. 删除匹配行——不显示它们,也不修改源文件。

仅删除第二行:$ sed '2 d'employee.txt

删除第1 至4 行: $ sed '1,4 d'employee.txt

删除第二行到最后一行:$ sed '2,$d'employee.txt

Shell编辑器《sed命令》 常用总结,程序员必备的基本命令

仅删除奇数行:$ sed '1~2 d'employee.txt

删除所有包含'Manager' 的行: $ sed '/Manager/d' employee.txt

删除包含'Jason' 的第一行到第四行: $ sed '/Jason/,4 d' employee.txt

删除从匹配'Raj' 的第一行到匹配'Jane' 的行: $ sed '/Raj/,/Jane/d'employee.txt

删除与'Jason' 匹配的行及其下面的两行: $ sed '/Jason/,+2 d' employee.txt

一些有用的删除示例

从文件中删除所有空行:sed '/^$/d'employee.txt

删除所有注释行(假设注释以#开头): sed '/^#/d'employee.txt

用户评论

回忆未来

终于找到了!之前一直想找一个简单易懂的Sed学习资源

    有11位网友表示赞同!

一点一点把你清空

太棒了!这个总结帮我梳理了一下常用的Sed命令,很有用。

    有13位网友表示赞同!

酒笙倾凉

Shell编和编程真的少不了sed命令啊,收藏一下

    有8位网友表示赞同!

轨迹!

程序猿要真是基础就应该把 Sed 牢记于心,太常用啦

    有15位网友表示赞同!

ok绷遮不住我颓废的伤あ

作为程序媛,这绝对是必备的!感谢分享~

    有7位网友表示赞同!

颜洛殇

刚接触Shell脚本,看来Sed命令需要好好学习啊

    有16位网友表示赞同!

可儿

我还没学会sed命令,这个总结很适合小白入门

    有14位网友表示赞同!

歆久

这个总结干货满满!好多SED命令都是零基础的我不会が使的。

    有20位网友表示赞同!

白恍

感谢分享,以后遇到文本处理问题就来看看这份总结~

    有13位网友表示赞同!

来自火星的我

学习Shell脚本真要从掌握Sed开始

    有15位网友表示赞同!

容纳我ii

sed 一定是shell编程里必不可少的技能,这个总结非常实用!

    有17位网友表示赞同!

抚笙

我最近在做Shell脚本调试,不知道还能用哪些sed命令...

    有9位网友表示赞同!

黑夜漫长

笔记!笔记!这些常用SED命令要整理好。学习中~

    有7位网友表示赞同!

晨与橙与城

这份总结太棒了!刚好有需要用到Sed命令

    有6位网友表示赞同!

放肆丶小侽人

终于找到这么全面的SED命令总结!以后就不用自己慢慢码了

    有11位网友表示赞同!

迷路的男人

这个总结简直是我的救星!经常在Shell脚本里用到的 comandos,谢谢分享

    有18位网友表示赞同!

陌颜

学习Sed命令,真的太方便了!感谢您分享的总结文档

    有5位网友表示赞同!

浮殇年华

作为一名程序猿,Sed 命令确实是必备的基础内容

    有17位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/4831.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666