sed学习笔记
---恢复内容开始---
sed是一种流处理工具,通过匹配模式按行读取文件中的内容到内存的模式空间内,而后再根据command做处理。
格式:
sed [options] 'addresscommand' file..
-n :静默模式,不再默认显示模式空间中的内容
-i:修改源文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r:表示使用扩展正则表达式
Address:
1.StartLine,EndLine
比如1,100
2./RegExp/
/^root/
3./pattern1/,/pattern2/
从第一次被pattern1匹配的行-->第一次被pattern2匹配的行中间的所有行
4.LineNumber
指定的行
5.StartLine, +N
从StartLine开始,向后的N行
Command:
d:删除否和条件的行;
p:显示符合条件的行;
a \string:在指定行后追加新行,内容为string
-n 可用于换行
i \string:在指定行前追加新行,内容为string
r File:将指定文件的内容添加至符合条件的行处
w File:将指定范围内的内容另存至指定 的文件中
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配搭配的字符串
加修饰符
g:全局替换
i:忽略字符大小写
s/ / / : s### , s@@@
\( \) , \1 , \2
&:引用模式匹配的整个串
几个练习题:
1、删除/etc/gurb.conf文件中行首的空白符
解:sed 's/^[[:space:]]*//g' /etc/grub.conf
2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5
解:sed 's/id\:3/id:5/' /etc/inittab
3、删除/etc/inittab文件中的空白行
解:sed '/^$/d' /etc/inittab
4、删除/etc/inittab文件中开头的#号
解:sed 's/^#//g' /etc/inittab
---恢复内容结束---
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步