如何使用 bash 在文本文件中全局用双反斜杠替换反斜杠?

问题描述 投票:0回答:1

我有一个 txt 文件,在其中存储数据,并且还存储反斜杠转义字符。我读取该文件的内容,然后将该值替换为 json 字段,因此我想添加双反斜杠以便稍后能够从不同的编程语言解析 json。

例如。创建一个名为 abc.txt 的文件,其内容为

Hello\nmate

这是我用来解析文件的 shell 脚本

#!/bin/bash
expected_output=$( cat abc.txt)
     
expected_output=${expected_output//\\/\\\\}
JSON_FMT='{"output":"%s"}'
printf "%s" "$expected_output" >> aaa.txt

如果我从不同的编程语言读取该文件,我不会看到反斜杠被双反斜杠替换,但如果我用 for 例如替换 H,它就会被替换。为什么我无法更换 性格?

我尝试用双反斜杠替换反斜杠,但它不起作用,但是如果我替换其他字符,它就可以工作。我期待反斜杠被双反斜杠取代

string bash file
1个回答
0
投票

使用任何 sed:

$ sed 's/\\/\\\\/g' file
Hello\\nmate
© www.soinside.com 2019 - 2024. All rights reserved.