我有一个包含文本的文件
**This is bold text**
*This is italicized text*
我希望将上述内容转换为
\textbf{This is bold text}
\emph{This is italicized text}
使用流编辑器 (sed)。请就此事给我一些指导。
我已经使用过这个代码
sed -i 's/\*\*\(.*\)\*\*/\\textbf{\1}/g' SampleCode
而且效果非常好
答案1
看起来你正在尝试发明新的潘多克。
反而:
安装 Pandoc:
sudo apt-get install pandoc
创建输入文件:
$ cat << EOF > file.md **This is bold text** *This is italicized text* EOF
运行从 Markdown 到 LaTeX 的转换:
pandoc file.md -o file.tex
享受结果:
$ cat file.tex \textbf{This is bold text} \emph{This is italicized text}
答案2
这是一个简单的答案:
echo '**This is bold text**' | sed -r 's/\*\*(.+)\*\*/\\textbf{\1}/'
echo '*This is italicized text*' | sed -r 's/\*(.+)\*/\\emph{\1}/'
最重要的是理解正则表达式。网上有多个正则表达式测试器,你可以用它来试验正则表达式。
这里对 sed 进行了非常好的解释。 https://www.grymoire.com/Unix/Sed.html