当前位置: 首页 > news >正文

Linux系统Shell脚本之sed

目录

一.文本三剑客之sed

1.基本用法

2.sed脚本语法及命令

①.sed脚本语法

②.sed命令

3.sed选项

4.sed的查找替换使用

5.后向引用

6.变量


一.文本三剑客之sed

1.基本用法

sed [选项]... '{自身脚本语法};....' [input file...]

2.sed脚本语法及命令

①.sed脚本语法

地址+sed自己脚本命令,地址即范围例如全文或第一行,第一行至第三行等范围

②.sed命令

  • p:将内容打印到屏幕,使用时关闭自动打印功能,-n选项
  • q:到指定的内容即退出,例如打印到第三行直接退出
  • IP:内容忽略大小写,使用时关闭自动打印功能,-n选项
  • d:删除指定内容
  • a:在指定位置添加内容
  • c:替换指定内容
  • ~ :步进,0~2,2个间隔,1~2,1个间隔 seq 10 |sed -n '0~2p'每间隔2个打印一次

3.sed选项

  • -n 选项:sed默认有自动打印功能,-n选项是关闭打印功能,一般配合脚本命令p使用
  • -r 选项:开启扩展正则表达式
  • -i 选项:在文件中添加内容,可以是在-i 加.bak后缀备份修改的文件

4.sed的查找替换使用

格式:sed '/可使用正则表达式选择范围/'s/查找内容/替换内容/g g表示全文,固定格式的///可以用###等符号替换

注意:查找内容可使用正则表达式,替换内容不可使用正则表达式

举例1:
搜索/etc/passwd 中包含root字符的行
sed -nr '/root/p'   /etc/passwd  #-n关闭自动打印,-r启用扩展正则表达式查询root字符并打印
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin   #查询结果
举例2:
使用sed关闭selinux
cat /etc/selinux/config   #查看selinux配置文件内容
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
#-i选项备份selinux配置文件后缀加.bak,在config文件中找到SELINUX=enforcing修改为SELINUX=disabled,g表示所有搜索到的内容都替换。单引号中''s之前可加行号

5.后向引用

( )内的按顺序标为123 ,引用时\1调用第一个()的内容,\n表示调用第n个()的内容。

.*表示任意长度字符不管是什么字符

 

6.变量

使用sed查询是可以直接调用变量,注意必须用“ ”号或者俩个双引号,单引号不识别变量 

http://www.xdnf.cn/news/365689.html

相关文章:

  • 深度学习-161-Dify工具之对比使用工作流和聊天流生成图表可视化的html文件
  • css样式实现-新闻列表
  • MySQL相关查询
  • 在 MyBatis 中实现控制台输出 SQL 参数
  • htmlUnit和Selenium的区别以及使用BrowserMobProxy捕获网络请求
  • RoPE长度外推:外插内插
  • ResNet详解
  • 企业名录搜索软件靠谱吗 企业名录搜索软件怎么使用
  • LSTM的简单模型
  • git做commit信息时的校验
  • C++ —— 可变参数
  • D720201 PCIE 转USB HUB
  • 值拷贝、浅拷贝和深拷贝
  • 利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组|文献速递-深度学习医疗AI最新文献
  • DAY04:Vue.js 指令与事件处理深度解析之从基础到实战
  • 弹窗表单的使用,基于element-ui二次封装
  • 十三、基于大模型的在线搜索平台——整合function calling流程
  • 萤石无插件取流巡检组件,便捷支持多屏预览与回放
  • MCP(Model Context Protocol,模型上下文协议)
  • tcpdump 的用法
  • [sklearn] 特征工程
  • LeRobot 项目部署运行逻辑(五)——intelrealsense.py/configs.py
  • 【PostgreSQL】不开启归档模式,是否会影响主从库备份?
  • OrangePi Zero 3学习笔记(Android篇)4 - eudev编译(获取libudev.so)
  • 边界网关协议 - BGP【高级】
  • 蓝绿激光对潜通信介绍
  • 【官方题解】StarryCoding 入门教育赛 2 | acm | 蓝桥杯 | 新手入门
  • 画家沈燕的山水实验:在传统皴法里植入时代密码
  • mysql性能提升方法大汇总
  • 【kafla扫盲】FROM GPT