中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-03 10:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » sed替换变量的相关问题 查看 966 回复 4
楼 主 sed替换变量的相关问题 发表于 2007-02-12 11:05 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
昨天弄那个“按标记分割文件”的时候做了个实验,其中sed替换变量有些不明白的

例如已定义 set var=123

我想替换a.txt中所有字符 0 为 %var%

在命令行下:
sed "s/0/\%var\%/" a.txt

写在bat中:
继续这样写 sed "s/0/\%var\%/" a.txt就sed出错
而要写为sed "s/0/%%var%%/" a.txt
还有要是想替换a.txt中所有字符 0 为 %1,而你又有%1,这时候在bat中也要写为sed "s/0/%%1/" a.txt


这就不明白了,为什么在命令行和在bat中不一样?

[ Last edited by vkill on 2007-2-12 at 10:59 PM ]
2 发表于 2007-02-14 00:58 ·  中国 河南 郑州 联通
新手上路
积分 4
发帖 2
注册 2007-02-13 04:54
19年会员
UID 79355
性别 男
状态 离线
命令行不需要转义,bat需要转义
3 发表于 2007-02-14 01:47 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by wy371tt1 at 2007-2-14 00:58:
命令行不需要转义,bat需要转义

转义,说的不合适吧?
4 发表于 2007-02-14 03:48 ·  中国 河南 郑州 联通
新手上路
积分 4
发帖 2
注册 2007-02-13 04:54
19年会员
UID 79355
性别 男
状态 离线
用词不准确,你理解了就行了
5 发表于 2007-02-14 13:13 ·  美国 北达科他州立大学
中级用户
★★
积分 316
发帖 152
注册 2006-06-18 13:01
20年会员
UID 57204
性别 男
状态 离线
个人认为,有点类似于for中参数的用法,虽然不尽相同
论坛跳转: