gpt4 book ai didi

bash - 将 "#"、 "$"、 "%"、 "&"和 "_"替换为 "\#"、 "\$"、 "\%"、 "\&"和 "\_"以及 0x104567910 和 0x104567910

转载 作者:行者123 更新时间:2023-11-29 08:48:52 25 4
gpt4 key购买 nike

我有一个纯文本文档,我想在 LaTeX 中编译它。但是,有时它包含字符“#”、“$”、“%”、“&”和“_”。要在 LaTeX 中正确编译,我必须首先用“#”、“\$”、“\%”、“\&”和“_”替换这些字符。我在 sed 中使用了这一行:

sed -i 's/\#/\\\#/g' ./file.txt
sed -i 's/\$/\\\$/g' ./file.txt
sed -i 's/\%/\\\%/g' ./file.txt
sed -i 's/\&/\\\&/g' ./file.txt
sed -i 's/\_/\\\_/g' ./file.txt

这是正确的吗?

不幸的是,该文件太大而无法在任何 GUI 软件中打开,因此很难用文本编辑器检查我的 sed 行是否正确。我尝试使用 grep 进行搜索,但搜索没有按预期进行(例如,在下面,我搜索了任何包含“$”的行):

grep "\$" file.txt
  • 在这些字符前放置“\”的最佳方式是什么?
  • 如何使用 grep 成功检查替换行?

最佳答案

您可以通过调用 sed 来完成替换:

sed -i -E 's/([#$%&_\])/\\&/g' file.txt

替换文本中的 & 填充括号中的任何单个字符。请注意,由于 \ 是 LaTeX 转义字符,因此您也必须在原始文件中对它进行转义。

关于bash - 将 "#"、 "$"、 "%"、 "&"和 "_"替换为 "\#"、 "\$"、 "\%"、 "\&"和 "\_"以及 0x104567910 和 0x104567910,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8950527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com