如何查找和替换所有百分比,加号和管道标志?

Vil*_*age 11 sed

我有一个包含许多百分比,加号和管道标志的文件.我想用代码替换它们,以便在TeX中使用.

  • %成为\textpercent.
  • +成为\textplus.
  • |成为\textbar.

这是我正在使用的代码,但它不起作用:

sed -i "s/\%/\\\textpercent /g" ./file.txt
sed -i "s/|/\\\textbar /g" ./file.txt
sed -i "s/\+/\\\textplus /g" ./file.txt
Run Code Online (Sandbox Code Playgroud)

如何用这段代码替换这些符号?

kri*_*aex 15

测试脚本:

#!/bin/bash

cat << 'EOF' > testfile.txt
1+2+3=6
12 is 50% of 24
The pipe character '|' looks like a vertical line.
EOF

sed -i -r 's/%/\\textpercent /g;s/[+]/\\textplus /g;s/[|]/\\textbar /g' testfile.txt

cat testfile.txt
Run Code Online (Sandbox Code Playgroud)

输出:

1\textplus 2\textplus 3=6
12 is 50\textpercent  of 24
The pipe character '\textbar ' looks like a vertical line.
Run Code Online (Sandbox Code Playgroud)

@tripleee已经以类似的方式提出了这一点,我认为没有理由不这样做.如您所见,我的平台使用与您相同版本的GNU sed.@ tripleee版本的唯一区别是我使用扩展的正则表达式模式,所以我必须要转义管道和加号,或者将它放入一个字符类中[].