找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23041|回复: 6

[问题求助] [已解决]sed替换网址,网址的特殊字符替换失灵

[复制链接]
发表于 2014-3-4 03:50:26 | 显示全部楼层 |阅读模式
  1. sed -ri -e 's/aaaaaaaaaa/bbbbbbbbbb/g' C:\1.txt
复制代码
这个表示将aaaaaaaaaa替换成bbbbbbbbbb。

我希望将aaaaaaaaaa替换成http://tieba.baidu.com/f/php?kw=123&action=123

发现怎么弄都是失败,不晓得是/:不支持还是什么,
  1. sed -ri -e 's/aaaaaaaaaa/http://tieba.baidu.com/f/php?kw=123&action=123/g' C:\1.txt
复制代码

  1. set temp=http://tieba.baidu.com/f/php?kw=123&action=123
  2. sed -ri -e 's/aaaaaaaaaa/%temp%/g' C:\1.txt
复制代码
请问应该怎么替换?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-3-4 08:13:21 | 显示全部楼层
  1. sed -i "s#aaaaaaaaaa#http://tieba.baidu.com/f/php?kw=123\&action=123#g" C:\1.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2014-3-4 10:10:03 | 显示全部楼层
本帖最后由 PowerShell 于 2014-3-4 10:12 编辑

既然有C:\1.txt 那就是win,何不尝试下powershell的威力?绝对不会失灵

powershell代码
  1. $原始串 = "caaaaaaaaad"
  2. $要查找的串 = "aaaaaaaaa"
  3. $要替换的串 = "bbbbbbbbbb"
  4. $原始串  -replace $要查找的串,$要替换的串



  5. $原始串 = "caaaaaaaaad"
  6. $要查找的串 = "aaaaaaaaa"
  7. $要替换的串 =
  8. @"
  9. http://tieba.baidu.com/f/php?kw=123&action=123
  10. "@
  11. $原始串  -replace $要查找的串,$要替换的串
复制代码
上述代码power shell 命令行窗口可以运行
----------------测试结果为:--------------------------
cbbbbbbbbbbd
chttp://tieba.baidu.com/f/php?kw=123&action=123d

------------------------------------------
powershell使用。net正则,简单直观。
powergui,带有单行调试!!!不比sed爽么?
 楼主| 发表于 2014-3-4 15:36:42 | 显示全部楼层
回复 2# DAIC


    网址中有&,这个符号sel无法识别,也不晓得能不能转义,尝试转义也不行\&
发表于 2014-3-4 15:54:02 | 显示全部楼层
回复 4# jzsgyml


我的测试结果:

c:\Test>type a.txt
aaaaaaaaaa

c:\Test>sed -i "s#aaaaaaaaaa#http://tieba.baidu.com/f/php?kw=123\&action=123#g" a.txt

c:\Test>type a.txt
http://tieba.baidu.com/f/php?kw=123&action=123
 楼主| 发表于 2014-3-4 20:20:24 | 显示全部楼层
既然有C:\1.txt 那就是win,何不尝试下powershell的威力?绝对不会失灵

powershell代码上述代码power sh ...
PowerShell 发表于 2014-3-4 10:10



    前段时间还热烈讨论xp退役,cmd是不是功成身退。现在xp确实停止维护了,但是微软不是放弃cmd,居然还开发了更高级的PowerShell,不错不错
 楼主| 发表于 2014-3-4 20:23:10 | 显示全部楼层
回复  jzsgyml


我的测试结果:

c:\Test>type a.txt
aaaaaaaaaa

c:\Test>sed -i "s#aaaaaaaaaa ...
DAIC 发表于 2014-3-4 15:54



    测试无误。要把/改成#,你的无误
  1. sed -i  's/aaaaaaaaaa/bbbbbbbbbb/g' C:\1.txt
复制代码
  1. sed -i  "s#aaaaaaaaaa#bbbbbbbbbb#g" C:\1.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:49 , Processed in 0.018355 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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