linux 系统中用vi 会出现一些奇怪的符号,用cat命令就看不到

使用vi命令: vi file.txt,文本里有一些奇怪的符号如 ^[[31;40;1m ^[[0m 使用cat命令看不到。如果用cat file.txt | mail -s xxx xxx@163.com 文件会被mail当做二进制文件以附件的形式发过去,而不是以正文的形式(怀疑就是这些符号引起的,使用sed s\^[[31;40;1m\\g file.txt 会直接报错),请教如何才能让去掉这些转义符(或者直接在邮件中显示正文,而不是附件)

sed s\^[[31;40;1m\\g file.txt
你这个命令错了。。。

vi进去后, :s/^[[31;40;1m//g追问

在shell里怎么实现呢?

追答

sed -i s/^[[31;40;1m//g

追问

一样的报错
[root@node-1 monitor]# sed -i s/^[[31;40;1m//g file2.txt
sed: -e expression #1, char 7: unterminated `s' command
-bash: 40: command not found
-bash: 1m//g: No such file or directory

追答

sed -i s/\(^[[31;40;1m\)//g file2.txt

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答