linux - 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" >
可能是什么问题呢。
解决方案
这应该这样做:
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
'
推荐阅读
- java - 无法使用 .sh 文件运行我的 .jar 文件
- javascript - 显示来自 Codeigniter 函数的 JSON html 数据
- javascript - 为什么 Chrome 网上应用店在发布 chrome 扩展时会抛出错误
- image - 加载 PNG 图像文件以作为 Image 对象在 Vaadin Flow 布局上显示
- ruby-on-rails - Searchkick `all` 用于带有 OR 的多个数组
- java - JLabel 最初不显示
- php - 使用 AJAX 和 PHP 收集复选框值的问题
- postgresql - PostgreSQL 错误:错误:插入的目标列多于表达式
- ios - Circle Fill At 80 %
- powershell - Changing date for file Auditing script