Linux|sed命令花式批量修改文件

news/2024/7/9 21:56:09 标签: linux, 运维, centos, postgresql, 数据库

前言:

sed命令,流式修改文本文件的强大工具,比如,最常用的关闭selinux时通常采用sed命令快速修改。

OK,其实sed命令虽然强大,但它修改文件的方式是非常多的,就像关闭selinux,可能都会有N种方式。

本文将就如何优雅的使用sed命令以及sed命令批量修改文件做一个详细的总结。

一,

关闭selinux的方法

首先,我们先看一下selinux的配置文件,观察它的结构:

[root@EULEER BBBBBBBBB]# cat /etc/selinux/config 

# 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=disabled
# 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 

修改思路: 

OK,我们的目的是修改第七行,那么,修改思路应该是部分替换,替换disabled为enforcing或者permissive,另一种思路是整体删除SELINUX=disabled 这一行,然后在原删除位置增加SELINUX=enforcing或者SELINUX=permissive这一行,当然,这个SELINUX=disabled是可以放置在任意一行,因此,在原位置或者在末尾或者开始增加这一行都是可以的。

那么,如何实现呢?

一。

整体替换

sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config

参数解释:

g表示相对文本文档,全局替换

s表示替换,第一个/ 后面接要替换的整行第二个/接新的内容 

i表示立刻修改

也可以这样替换,效果是一样的:

sed -i 's/^SELINUX=disable/SELINUX=permissive/g' /etc/selinux/config

二,

部分替换

sed -i 's/=disable/=permissive/g' /etc/selinux/config

三,

替换的内容前增加两个空格

sed -i 's/=disabled/=  permissive/g' /etc/selinux/config

替换后的文件内容如下:

# 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=  permissive
# 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 '/^SELINUX=/a \n' /etc/selinux/config

五,指定行插入两个空行

再次执行此命令将会在增加两个空行

sed -i '/^SELINUX=/a \\n' /etc/selinux/config

六,

指定行后增加一个 t带有table的空行

sed -i '/^SELINUX=/a \\t' /etc/selinux/config

七,

指定行后增加指定内容 /fuck

sed -i '/^SELINUX=/a \ /fuck' /etc/selinux/config

未完待续!~~~~~~~~ 


http://www.niftyadmin.cn/n/213901.html

相关文章

登录图片验证码

页面刷新时,自动发送获取验证码到服务端 输入验证码登录,登录成功返回token 通过token获取用户详情,跳转主页 //获取验证码图片 GetMapping("/verification") public void verification(String uuid, HttpServletResponse …

【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

目录 一、定位页面元素方法源码说明 (1)Webdriver.common (2)selenium.webdriver.common.by (3)By 二、定位页面元素方法用法汇总 (1)2.0 及以下低版本 selenium &#xff1a…

【Android 你的SurfaceView休眠了吗】

最近工作中用到了SurfaceView,发现对自己SurfaceView并没有一个系统的认识,而且网上查阅资料也都是一些简单的讲解,因此这里总结一下希望对大家有所帮助。 SurfaceView 介绍 SurfaceView基本定义网上有很详细的说明,这里不再进行…

【MySQL】表的增删查改(进阶)

在开始正文之前给大家分享我的摄影照片哦~ 希望大家喜欢~ 文章目录数据库约束约束类型NOT NULLUNIQUEPRIMARY KEYDEFAULTFOREIGN KEY(外键约束)表的设计一对一关系一对多关系多对多关系新增查询聚合查询聚合函数GROUP BY 子句联合查询(多表…

Leetcode力扣秋招刷题路-0189

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 189. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4]…

4.基于多目标粒子群算法冷热电联供综合能源系统运行优化

4.基于多目标粒子群算法冷热电联供综合能源系统运行优化《文章复现》 相关资源代码:基于多目标粒子群算法冷热电联供综合能源系统运行优化 基于多目标算法的冷热电联供型综合能源系统运行优化 考虑用户舒适度的冷热电多能互补综合能源系统优化调度 仿真平台:matl…

超详细从入门到精通,pytest自动化测试框架实战-fixture高级进阶(十)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 1、fixture的autous…

ChatGPT/GPT4开源“平替”汇总

寻找那些ChatGPT/GPT4开源“平替”们。 ChatGPT爆火出圈,国内很多高校、研究机构和企业都发出类似ChatGPT的发布计划。ChatGPT没有开源,复现难度极大,即使到现在GPT3的完全能力也没有任何一个单位或者企业进行了复现。刚刚,OpenA…