在 windows cmder 中使用 sed 替换特殊字符....并使用 url 参数出现奇怪的错误
Replacing special characters using sed within windows cmder....and getting an strange error with url parameter
我在 post 上读到,当使用 sed -i 来替换包含特殊字符的值时,必须使用“|”而不是替换简单文本单词时有效的“/”。
例如:sed -i 's|'$original_value'|'$new_value'|g'
其中 original_value="comprising_special_char_/" new_value="comprising_new_special_char:
我已经尝试使用更短、更简单的字符串进行此操作并且效果很好,但是当我尝试使用以下字符串进行此操作时收到错误消息。
sed -i 's|'category=2fLShbTEL0cKrSR7J9S2hk&emailRedirect=Y'|'utm_source=marketingcloud&utm_medium=email&utm_campaign=p8%202021%20donutshop%20lifestyle&utm_content=primary%20cta&brand=Donut%20Shop&emailRedirect=Y'|gi' *.html
任何人都可以提供帮助,说明为什么当 运行 在 windows cmder(使用 gnu)中执行上述命令时出现如下所示的错误?
''category' 不是内部或外部命令,也不是可运行的程序或批处理文件。
您需要使用
- sed 命令用双引号引起来
- 仅在替换中转义
&
个字符。
所以你需要使用
sed -i "s|category=2fLShbTEL0cKrSR7J9S2hk&emailRedirect=Y|utm_source=marketingcloud\&utm_medium=email\&utm_campaign=p8%202021%20donutshop%20lifestyle\&utm_content=primary%20cta\&brand=Donut%20Shop\&emailRedirect=Y|gi" *.html
我在 post 上读到,当使用 sed -i 来替换包含特殊字符的值时,必须使用“|”而不是替换简单文本单词时有效的“/”。
例如:sed -i 's|'$original_value'|'$new_value'|g'
其中 original_value="comprising_special_char_/" new_value="comprising_new_special_char:
我已经尝试使用更短、更简单的字符串进行此操作并且效果很好,但是当我尝试使用以下字符串进行此操作时收到错误消息。
sed -i 's|'category=2fLShbTEL0cKrSR7J9S2hk&emailRedirect=Y'|'utm_source=marketingcloud&utm_medium=email&utm_campaign=p8%202021%20donutshop%20lifestyle&utm_content=primary%20cta&brand=Donut%20Shop&emailRedirect=Y'|gi' *.html
任何人都可以提供帮助,说明为什么当 运行 在 windows cmder(使用 gnu)中执行上述命令时出现如下所示的错误?
''category' 不是内部或外部命令,也不是可运行的程序或批处理文件。
您需要使用
- sed 命令用双引号引起来
- 仅在替换中转义
&
个字符。
所以你需要使用
sed -i "s|category=2fLShbTEL0cKrSR7J9S2hk&emailRedirect=Y|utm_source=marketingcloud\&utm_medium=email\&utm_campaign=p8%202021%20donutshop%20lifestyle\&utm_content=primary%20cta\&brand=Donut%20Shop\&emailRedirect=Y|gi" *.html