sed 常用的命令
$ sed -n '$p' ok.txt #打印出最后一行
$ sed -n '$=' ok.txt #打印总行数
$ sed -n '/$/=' ok.txt #查找空白行数
打印
命令 | 解释 |
---|---|
$ sed -n '$p' ok.txt | #打印出最后一行 |
$ sed -n '$=' ok.txt | #打印总行数 |
$ sed -n '/$/=' ok.txt | #查找空白行数 |
seq 10 | sed -n '1~2p' #输出奇数次序的值
seq 10 | sed -n '2~2p' #输出偶数次序的值
插入内容
命令 | 解释 |
---|---|
sed '5 a\ 123' ok.txt | 在第5行后插入一新行,内容为123 |
sed '5 i\ 123' ok.txt | 在第5行前插入一新行,内容为123 |
sed '5 s/$/123/' ok.txt | 在第5行行尾追加,内容为123 |
sed '5 s/^/123/' ok.txt | 在第5行开头追加,内容为123 |
sed '/FTP/i 123' ok.txt | 在含有FTP的行前面新插入一行,内容为123 |
sed '/FTP/a 123' ok.txt | 在含有FTP的行后面插入一行,内容为123 |
删除内容
命令 | 解释 |
---|---|
sed '1~2d' /etc/passwd | #删除第1,3,5,7,9……行(1为初始行,2为步长) |
sed '2~2d' /etc/passwd | #删除第2,4,6,8,…… 行(2为初始行,2为步长) |
sed "/user02/,+1d" qqqq.txt | # 找到user02,然后从它开始再往下一行都删掉 |
修改匹配字符串内容
命令 | 解释 |
---|---|
sed 's/root/ROOT/' t1 | # 每行第一个root进行替换 |
sed 's/root/ROOT/g' t1 | # 文件中所有root进行替换 |
sed '2s/root/ROOT/g' t1 | # 仅仅第2行的所有root进行替换 |
sed '2s/root/ROOT/' t1 # | 仅仅第2行的第一个root进行替换 |
sed '2s/root/ROOT/2' t1 | # 仅仅第2行的第2个root进行替换 |
sed -n 's/root/ROOT/w /tx' t1 | # 仅仅第2行的第2个root进行替换,并将被替换后的第2行内容放入新的文件tx内 |
sed 's/^/# /' t1 | #在文件的每行前面添加 # 注释 |
统计文件中每个单词出现了多少次:
sed 's/ /\n/g' file.txt|sort|uniq -c
将字符a或b或c或d全部都删除:
sed 's/[a,b,c,d]//g' test.txt
将字符a或b或c全部都用双引号括起来:
sed 's/[a,b,c,d]/"&"/g' test.txt
特殊修改
$ sed -i.bak ‘s/123/efg/g’ a.txt # 备份源文件 参数-i后缀:替换并将源文件备份改后缀
sed -n '1,8w user.txt' /etc/passwd # 将文件的第1行到第8行内容保存到user.txt文件
$ sed -i ’2 r readfile.txt’ writefile.txt # 参数r:在某行插入文件
逐个字符串对应替换
y 替换,按照位置来匹配替换 y/// 不识别re
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' t1 # 大小写转换,注意前后每个字符对应
替换匹配行
c参数,直接修改对应行
[root@tx3 ~]$ sed -n '1c ROOT' t1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探