为什么我不能使用 sed 删除字符?

为什么我不能使用 sed 删除字符?

我有一个 json 文件,并尝试\r使用删除字符sed,但没有得到任何输出。

这是文档

{"dom":"fff.dd",[{"em":"[email protected]\r"}]}
{"dom":"fff.dd",[{"em":"[email protected]"},{"em":"[email protected]\r"}]}

sed我使用的命令是:

sed 's/\r//' input.json

没有错误,我得到的输出是原始文件,其中的字符\r仍然存在,就好像没有对文件执行任何操作一样。

如果我在使用该命令时哪里错了,请告诉我,以及正确的方法是什么。

答案1

你只需要另一个反斜杠:

sed 's/\\r//' input.json

这是因为sed解释\r为换行符(字符\U0E),但解释\\r为反斜杠和小写 r(两个字符\U5C\U72)。

相关内容