【问题标题】:regex to change sed command+special characters?正则表达式更改 sed 命令+特殊字符?
【发布时间】:2012-07-07 20:27:15
【问题描述】:


我在 Windows Xp 上使用 CMD 将特殊文本替换为 Sed。我正在使用此命令替换 $ or * 等特殊字符:

sed -i "s/\*/123/g;" 1.txt

前面的命令不起作用,因为我有 \" 和其他 sed 用来制作正则表达式的特殊字符串。转义字符 ^ 不能很好地工作,因为 sed no 给我错误但文件内部没有任何变化。

要更改此文本 "{\*)(//123/$$ 我尝试使用此命令:
sed -i "s£"^"{^\^*)(//123/^$^$"£xx£g;" 1.txt

£ 是分隔符,xx 是新文本..但没有任何变化

我想如何将这样的文本变成这样?
sed -i^/\\*$/$[{" ;" 1.txt 变成 xx

【问题讨论】:

    标签: sed cmd


    【解决方案1】:

    这可能对你有用:

    echo '"{\*)(//123/$$' | sed "s/[\"][{][\\][*][)][(][/][/]123[/][$][$]/xx/"
    xx
    

    【讨论】:

    • 是的..现在它可以工作了..确切的命令是echo '"{\*)(//123/$$' sed -i "s/[\"][{][\\][*][)][(][/][/]123[/][$][$]/xx/" 1.txt 但是如果我想替换['^?我把它放到[]?
    • @user143822 是,例如echo "'[]^"|sed "s/[][^']/x/g" = xxxx
    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 2018-06-13
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多