|
|
呐喊的木耳 · 携程酒店-天一锦胜宾馆(沈阳开发大道地铁站店 ...· 1 年前 · |
|
|
伤情的墨镜 · (同人)约尔和黄昏在浴室干嘛?_哔哩哔哩_b ...· 1 年前 · |
|
|
儒雅的冲锋衣 · Solidworks Flow ...· 1 年前 · |
|
|
爱旅游的手套 · 我啊,走自己的路 - 搜狗百科· 2 年前 · |
|
|
讲道义的青蛙 · 权力的游戏都删减了哪些内容? - 知乎· 2 年前 · |
据我所知,当你使用单引号时,里面的所有东西都被认为是字面上的。我想用这个做我的替身。但我也想找一个包含单引号或双引号的字符串。
例如,
sed -i 's/"http://www.fubar.com"/URL_FUBAR/g'
我想用URL_FUBAR替换" http://www.fubar.com “。sed应该如何识别我的//或双引号?
谢谢你的帮助!
编辑:
我可以使用
s/\"http\:\/\/www\.fubar\.\com\"/URL_FUBAR/g
吗?
是否真的转义单引号内的字符?
发布于 2011-09-23 00:03:26
sed
中的
s///
命令允许您使用其他字符而不是
/
作为分隔符,如
sed 's#"http://www\.fubar\.com"#URL_FUBAR#g'
或
sed 's,"http://www\.fubar\.com",URL_FUBAR,g'
双引号不是问题。要匹配单引号,请交换两种类型的引号。请注意,单引号字符串不能包含单引号(甚至不能包含转义的引号)。
如果
sed
要将这些点解释为文字点,而不是匹配任何一个字符的正则表达式模式
.
,则需要对这些点进行转义。
发布于 2013-05-17 21:00:30
我的问题是,我需要将
""
放在表达式之外,因为我在sed表达式本身内部有一个动态变量。因此,实际的解决方案是lenn jackman提出的,将sed正则表达式中的
"
替换为
[\"]
。
所以我要说的是:
RELEASE_VERSION="0.6.6"
sed -i -e "s#value=[\"]trunk[\"]#value=\"tags/$RELEASE_VERSION\"#g" myfile.xml
下面是:
#
是sed分隔符
正则表达式中的
[\"]
=
"
\"
=
\"tags/$RELEASE_VERSION\"
=我的替换字符串,重要的是它只有引号的值
发布于 2011-09-23 01:15:54
很难在单引号中转义单引号。试试这个:
sed "s@['\"]http://www.\([^.]\+).com['\"]@URL_\U\1@g"
示例:
$ sed "s@['\"]http://www.\([^.]\+\).com['\"]@URL_\U\1@g" <<END
this is "http://www.fubar.com" and 'http://www.example.com' here
END
产生
this is URL_FUBAR and URL_EXAMPLE here
https://stackoverflow.com/questions/7517632
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287