使用sed替换特殊字符


13

这可以在文件中替换tomsam

sed 's/tom/sam/g' file_1 > file_2

但这不是:

sed 's/*****/sam/g' file_1 > file_2

*****用单词代替特殊字符sam。我已经尝试了一个斜杠,\*但错误。


2
您尝试使用了什么命令,\*并且遇到了什么错误?
cuonglm

我尝试过:sed's / **** / sam / g'test.txt> test2.txt并导致错误:sed:Bad regex'*****':无效的前正则表达式-这确实具有*之前的
玫瑰花蕾

1
您可以尝试逃避所有特殊字符:sed 's/\*\*\*\*\*/sam/g'
taliezin 2015年

Answers:


17

您需要在特殊字符\前面加上反斜杠来转义特殊字符,例如:

sed 's/\*/t/g' test.txt > test2.txt


0

您需要在特殊字符\前面加上反斜杠来转义特殊字符。对于您的情况,请使用反斜杠将每个特殊字符转义\

例如: **** boy is ****

sed 's/\*\*\*\*/sam/g' filename

回答:

sam boy is sam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.