您尚未登录。

#1 2021-06-10 23:11:55

驿窗
驿窗
注册时间: 2016-06-03
帖子: 877

sed -i 替换特殊字符

我的文本文件中有很多下面的内容:

abc文本 **abc文本** abc文本

主要特征是前面两个星号的左边有一个空格,后面两个星号的右边有一个空格,我使用sed -i 命令替换左边的[ **],就是在前面两个星号的空格左侧增加一个\,如下:

sed -i "s# **#\ **#" *.txt

但运行后会报错:

sed: -e expression #1, char 11: Invalid preceding regular expression

这个要怎么解?


-----------------------------------
开源/Linux大众化,从驿窗开始~

离线

#2 2021-06-11 01:09:01

SamLukeYes
会员
所在地: Canton, China
注册时间: 2020-07-19
帖子: 122
个人网站

Re: sed -i 替换特殊字符

's| \*\*|\\\\ \*\*|'


Using Arch Linux on Surface Pro 6

离线

#3 2021-06-11 14:15:43

驿窗
驿窗
注册时间: 2016-06-03
帖子: 877

Re: sed -i 替换特殊字符

我明白了,把*和\都给\一下;

这个方法很有效,我已经完成修改了~


-----------------------------------
开源/Linux大众化,从驿窗开始~

离线

页脚