找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 595|回复: 12

[其它X86系统] 求助sed命令编写

[复制链接]
发表于 2024-9-6 21:11 | 显示全部楼层 |阅读模式
sed -i  '/logger -t "【c 】" "下载 cl  配置完成!"/i\   'sed -i  '$i\  - IP-CIDR,20.254.1.0/24,DIRECT'  /etc/storage/app_20.sh'' /media/AiCard_01/a.sh




请教下大佬,如何将一条sed命令用sed写入文件

如上 想实现 将
sed -i  '$i\  - IP-CIDR,20.254.1.0/24,DIRECT'  /etc/storage/app_20.sh

写入/media/AiCard_01/a.sh文件的
“下载 cl  配置完成!”

这行前面


只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2024-9-6 21:57 | 显示全部楼层
复杂字符串不好整
不行就先拆分文件,再用 echo 追加,再合并文件

评分

参与人数 1恩山币 +1 收起 理由
oojt + 1 感谢你的分享,无论怎样,你都是最无私的人 ...

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-9-6 22:20 | 显示全部楼层
sed -i &#x27;/logger -t &quot;【c 】&quot; &quot;下载 cl  配置完成!&quot;/i sed -i &#x27;\&#x27;&#x27;</span>i\  - IP-CIDR,20.254.1.0/24,DIRECT'\'' /etc/storage/app_20.sh' /media/AiCard_01/a.sh

点评

谢谢  发表于 2024-9-7 14:14
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-9-6 22:28 | 显示全部楼层
本帖最后由 1562004423 于 2024-9-6 22:45 编辑

/media/AiCard_01/a.sh,此文件中有这样一行
  1. logger -t "【c】" "下载 cl 配置完成!"
复制代码

想在前面加一行,内容是:sed -i  '$i\  - IP-CIDR,20.254.1.0/24,DIRECT'  /etc/storage/app_20.sh
如下所示
  1. sed -i '$i\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh
  2. logger -t "【c】" "下载 cl 配置完成!"
复制代码

用sed命令实现上述需求:
  1. sed -i "/logger -t \"【c】\" \"下载 cl 配置完成!\"/i\sed -i '\$i\\\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh" /media/AiCard_01/a.sh
复制代码

PS:看了半天没看懂你到底想表达什么~~

点评

大佬 能否在增加一个去重呢?有时运行了2次 出现相同的行,如下 sed -i '$i\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh sed -i '$i\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh lo  详情 回复 发表于 2024-9-7 15:27
好用 谢谢 这个其实是解决沪联通iptv被鸡厂路由覆盖的命令  发表于 2024-9-7 14:17

评分

参与人数 1恩山币 +2 收起 理由
oojt + 2 感谢你的分享,无论怎样,你都是最无私的人 ...

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-9-7 04:17 来自手机 | 显示全部楼层
echo不就行了

点评

echo不会弄  发表于 2024-9-7 14:18
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-7 14:24 | 显示全部楼层
感谢1562004423,结构非常清楚的回复
这个代码其实是解决沪联通 iptv路由被鸡厂污染的代码
分享给有缘人
代码放在pavadan 里自定义脚本
开机添加到/etc/storage/script/Sh10_克拉斯.sh 里
然后每6小时定时更新规则时将- IP-CIDR,20.253.1.0/24,DIRECT写入 /etc/storage/app_20.sh
避免重启失效
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-7 15:27 | 显示全部楼层
本帖最后由 oojt 于 2024-9-7 16:18 编辑
1562004423 发表于 2024-9-6 22:28
/media/AiCard_01/a.sh,此文件中有这样一行

想在前面加一行,内容是:sed -i  '$i\  - IP-CIDR,20.254.1. ...

大佬 能否在增加一个去重呢?有时运行了2次 出现相同的行,如下
sed -i '$i\  - IP-CIDR,20.254.1.0/24,DIRECT'  /etc/storage/app_20.sh
sed -i '$i\  - IP-CIDR,20.254.1.0/24,DIRECT'  /etc/storage/app_20.sh
logger -t "【c】" "下载 cl 配置完成!"

怎么删掉重复行呢
可否先删除所有匹配行,删除后 在添加
sed -i "sed -i '\$i - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh/d" /media/AiCard_01/a.sh



点评

因为命令的作用就是添加,所以执行一次会添加一行,执行一次会添加一行,无限添加 如果要先删除所有匹配行,删除后再添加,单行命令实现,示例写法如下:  详情 回复 发表于 2024-9-7 17:04
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-9-7 17:04 | 显示全部楼层
本帖最后由 1562004423 于 2024-9-7 17:09 编辑
oojt 发表于 2024-9-7 15:27
大佬 能否在增加一个去重呢?有时运行了2次 出现相同的行,如下
sed -i '$i\  - IP-CIDR,20.254.1.0/24,DI ...

因为命令的作用就是添加,所以执行一次会添加一行,执行一次会添加一行,无限添加


如果要先删除所有匹配行,删除后再添加,单行命令实现,示例写法如下:
  1. cat /media/AiCard_01/a.sh |sed "/sed -i '\$i\\\ - IP-CIDR,20.254.1.0\/24,DIRECT' \/etc\/storage\/app_20.sh/d" |sed "/logger -t \"【c】\" \"下载 cl 配置完成!\"/i\sed -i '\$i\\\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh" |tee /media/AiCard_01/a.sh
复制代码

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-7 18:53 | 显示全部楼层
本帖最后由 oojt 于 2024-9-7 18:55 编辑
  1. sed -i "/sed -i '\$i\\\ - IP-CIDR,20.254.1.0\/24,DIRECT' \/etc\/storage\/app_20.sh/d"   /etc/storage/script/Sh10_c***h.sh   &
  2. sed -i "/sed -i '\$i\\\ - IP-CIDR,20.253.1.0\/24,DIRECT' \/etc\/storage\/app_20.sh/d"   /etc/storage/script/Sh10_c***h.sh   &
  3. sed -i "/logger -t "【c***h】" "下载 c***h 配置完成!"/i\sed -i '\$i\\\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh" /etc/storage/script/Sh10_c***h.sh  &
复制代码

最终代码 ,完美!

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-7 18:55 | 显示全部楼层
  1. sed -i "/sed -i '\$i\\\ - IP-CIDR,20.254.1.0\/24,DIRECT' \/etc\/storage\/app_20.sh/d"   /etc/storage/script/Sh10_c***h.sh   &
  2. sed -i "/sed -i '\$i\\\ - IP-CIDR,20.253.1.0\/24,DIRECT' \/etc\/storage\/app_20.sh/d"   /etc/storage/script/Sh10_c***h.sh   &
  3. sed -i "/logger -t "【c***h】" "下载 c***h 配置完成!"/i\sed -i '\$i\\\ - IP-CIDR,20.254.1.0/24,DIRECT' /etc/storage/app_20.sh" /etc/storage/script/Sh10_c***h.sh  &
  4. sed -i "/logger -t "【c***h】" "下载 c***h 配置完成!"/i\sed -i '\$i\\\ - IP-CIDR,20.253.1.0/24,DIRECT' /etc/storage/app_20.sh" /etc/storage/script/Sh10_c***h.sh  &
复制代码


只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-9-21 22:01

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表