解决sed替换文本,里面含有“/“、“#”等特殊字符的问题

简介: 解决sed替换文本,里面含有“/“、“#”等特殊字符的问题

如果我们使用sed命令时,如果出现特殊字符,可能会报错,示例如下:

# /不可以作为界定符,因为会与里面的内容冲突
sed -i 's/flink//etc/g' 
# 井号#不可以作为界定符,因为会与里面的内容冲突
sed -i 's#jdbc://127.0.0.1&password=1#aa$username=root#g' 
# @不可以作为界定符,因为会与里面的内容冲突
sed -i 's@jdbc://127.0.0.1&password=1@aa$username=root@g' 

那该如何解决呢?

我们得看来里面的内容来选择特定的界定符,例如:

  • 里面含有"/",可以选择“#”或“ @”作为界定符;
  • 里面含有“#”,可以选择“@”或“/”作为界定符;
  • 里面含有“@”,可以选择“/”或“#”作为界定符。

那么如果都有以上的内容呢?只能在被替换文本中使用转义符号 “\”了,如:

sed -i 's/oracle/\/etc\/oracle/g'
目录
相关文章
|
2月前
|
Linux Perl
sed删除匹配正则表达式的行
sed删除匹配正则表达式的行
45 1
如何去掉字符串开头,结尾或者中间的空格及其他不想要的字符
去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
|
2月前
|
Shell Perl
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
56 7
|
3月前
|
Unix Perl
`sed`命令替换文本中的单词
`sed`命令替换文本中的单词
35 3
|
Shell
SHELL下如何去掉字串里的空格(或指定字符)
SHELL下如何去掉字串里的空格(或指定字符)
851 0
|
12月前
|
数据采集 移动开发
一日一技:在字符串中批量替换单个字符
一日一技:在字符串中批量替换单个字符
102 0
|
Linux Perl
LINUX使用sed,字串中包含特殊字符怎么办?
LINUX使用sed,字串中包含特殊字符怎么办?
114 0
|
移动开发
grep搜索字串包含特殊字符怎么办
grep搜索字串包含特殊字符怎么办
220 0
用#替换字符
给定一个由大小写字母构成的字符串。 把该字符串中特定的字符全部用字符 # 替换。
87 0
|
Shell Linux Perl
Shell的正则表达式入门、常规匹配、特殊字符:^、$、.、*、字符区间(中括号):[ ]、特殊字符:\、匹配手机号
Shell的正则表达式入门、常规匹配、特殊字符:^、$、.、*、字符区间(中括号):[ ]、特殊字符:\、匹配手机号
Shell的正则表达式入门、常规匹配、特殊字符:^、$、.、*、字符区间(中括号):[ ]、特殊字符:\、匹配手机号