sed -if /script/scr.sedcc test.txt

本文深入解析了sed命令中-i参数及正则表达式的使用方法,通过具体示例解释如何利用sed命令进行文本处理,包括行匹配与替换等高级操作。

CU上的问题5:
这条语句有什么作用?
sed -if /script/scr.sedcc test.txt

这题看似简单 但没仔细看过man的人估计都会答错

这题出的让我佩服的五体投地..

题解:

-i是参数 f是-i的子参数 意为rename的追加拓展名 不写则rename源文件名 即为覆盖

/script/ 正则匹配即含有script的行

s是替换函数(sed内部命令)

c是替换分隔符即相当于“/

sed -if /script/scr.sedcc test.txt 解析为 sed -iABC '/script/s/r.sed//' test.txt

意思是: 将test.txt文件含有script的行中的r.sed替换为空,并且将更改后的文件追加拓展名后生成新文件名,而且重命名后的文件与原来的文件的innode节点完全相同
看过程:

[root@shell opt]# rm -rf a.*
[root@shell opt]# touch a.1
[root@shell opt]# ll -i a.*
328942 -rw-r--r-- 1 root root 0 05-19 09:34 a.1
[root@shell opt]# sed -iABC '/script/s/r.sed//' a.1
[root@shell opt]# ll -i a.*
328944 -rw-r--r-- 1 root root 0 05-19 09:35 a.1
328942 -rw-r--r-- 1 root root 0 05-19 09:34 a.1ABC
[root@shell opt]#

<!-- 日志内容 结束 --><!-- 日志来源 开始 --><!-- 日志来源 结束 --><!-- 日志信息 开始 -->
这是一个用于管理 Linux 系统 `/etc/resolv.conf` 文件的脚本片段,主要用于检查、修改或创建该文件。以下是详细解析: --- ### 脚本功能分析 1. **判断文件是否存在** ```bash if [ -f /etc/resolv.conf ]; then ``` 这行代码会检测系统中是否已经存在 `/etc/resolv.conf` 文件。如果存在,则进入 `then` 分支;若不存在,则跳转至 `else` 分支。 2. **移除文件的只读属性** ```bash sudo chattr -i /etc/resolv.conf ``` 如果文件存在,首先需要解除其不可变属性 (`immutable`),以便对其进行编辑操作。`chattr -i` 表示关闭文件的不可变标志位。 3. **删除指定内容** 下面几行使用了 `sed` 工具逐条匹配并删除特定配置项: ```bash sudo sed -i '/domain huawei.com/d' /etc/resolv.conf sudo sed -i '/search huawei.com/d' /etc/resolv.conf sudo sed -i '/10.129.0.84/d' /etc/resolv.conf sudo sed -i '/10.129.0.148/d' /etc/resolv.conf sudo sed -i '/10.144.90.20/d' /etc/resolv.conf sudo sed -i '/10.98.48.39/d' /etc/resolv.conf ``` 具体作用是通过正则表达式找到包含某些关键字(如 `domain huawei.com`, `search huawei.com` 或者特定 DNS 地址)的行,并将其从文件中删除。 4. **当文件不存在时的操作** 若未发现 `/etc/resolv.conf` 文件,则执行以下动作: ```bash sudo touch /etc/resolv.conf sudo chattr -i /etc/resolv.conf ``` 首先用 `touch` 创建一个新文件,然后再次设置文件为不可变状态。 --- ### 总结 此脚本的核心任务是对 `/etc/resolv.conf` 文件进行维护,包括清理旧有的 DNS 设置以及确保文件的存在性和安全性(防止未经授权的更改)。通常这种场景出现在需要标准化网络配置的企业环境内。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值