首页 > 解决方案 > sed用另一个字符串替换字符串错误结果

问题描述

我需要从下一行../替换./

<html xmlns:og="http://test.org/schema/"  xmlns:website="../test/ns/website" >

但是当使用命令时

sed -i 's+../+./+g' ./*

文件内容更改为

<html xmlns:og="htt.//test.o./sche./" xmlns:website="./te././website" >

可能是什么问题呢。

标签: linuxsedcommand-line

解决方案


这应该这样做:

echo "<html xmlns:og="http://test.org/schema/"  xmlns:website="../test/ns/website" >" | sed 's|\.\./|./|g'
<html xmlns:og=http://test.org/schema/  xmlns:website=./test/ns/website >

您需要转义,.否则它意味着任何字符。

这也应该有效: sed 's+\.\./+./+g'


推荐阅读