shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容
shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表命令 含义 1d 删除第一行内容 1,10d 删除1行到10行的内容 10,+5d 删除10行到16行的内容 /pattern1/d 删除每行中匹配到pattern1的行内容 /pattern1/,/pattern2/d 删除匹配到pattern1的行直到匹配到pattern2的所有行内容 /pattern1/,10d 删除匹配到pattern1的行到10行的所有行内容 10,/pattern1/d 删除第10行直到匹配到pattern1的所有行内容 总结 用法总结: 练习例子: 1、删除/etc/passwd中的第15行 sed -n '15p' passwd 2、删除/etc/passwd中的8行到14行的所有内容 sed -i '8,14d' passwd 3、删除/etc/passwd中的不能登录的用户(筛选条件:/sbin/nologin) sed -i '/\/sbin\/nologin/d' passwd 4、删除/etc/passwd中以mail开头的行,到以ftp开头行的所有内容 sed -i '/^mail/,/^ftp/d' passwd 5、删除/etc/passwd中第一个不能登录的用户 到 第13行的所有内容 sed -i '/\/sbin\/nologin/,13d' passwd # 这个表达式会删除第一个 /sbin/nologin 到 第13行,然后再重新开始再次删除,循环。。。,不建议使用 6、删除/etc/passwd中第5行到以ftp开头的所有行的内容 sed -i '5,/^ftp/d' passwd 7、删除/etc/passwd中以nobody开头的行到最后行的所有内容 sed -i '/^nobody/,$d' passwd 典型需求: 1、删除nginx.conf文件中注释行和空行 # 删除#开头的行和空行 sed -i '/^#/d;/^$/d' nginx.conf 发现还有类似,前面一个或者多个空格后面是注释的情况 # 注释 # 删除一个或多个空格加#号的行 sed -i '/[:blank:]*#/d' nginx.conf 2、在配置文件中所有不以#开头的行前面添加*符号,注意:以#开头的行不添加 # ^[^#] 对以#号开头的行取反就是非#开头的行,& 是反向引用代表前面的行,然后加* sed -i 's/^[^#]/*&/g' nginx.conf
分类:
shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律