如题,下面是一个latex,为了能在ghost中配合markdown和mathjex使用,需要将_
进行转义。
$$ P_t = \frac{Nominal \ GDP}{Real \ GDP}=\frac{$Y_t}{Y_t} $$
替换为:
$$ P\_t = \frac{Nominal \ GDP}{Real \ GDP}=\frac{$Y\_t}{Y\_t} $$
感激不尽。
P.S. 我用Atom进行正则表达式替换。
1
walleL 2015-03-16 16:17:04 +08:00
echo '$$ P_t = \frac{Nominal \ GDP}{Real \ GDP}=\frac{$Y_t}{Y_t} $$' | sed -re '/\$\$.+\$\$/{s/_/\\_/g}'
sed 的解法, Atom 没用过 |
2
discrete OP @walleL 这在Mac下用不了……
`` ➜ ~ cat 1 | sed -re '/\$\$.+\$\$/{s/_/\\_/g}' sed: illegal option -- r usage: sed script [-Ealn] [-i extension] [file ...] sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...] ➜ ~ cat 1 | sed '/\$\$.+\$\$/{s/_/\\_/g}' sed: 1: "/\$\$.+\$\$/{s/_/\\_/g}": bad flag in substitute command: '}' `` |
3
P233 2015-03-16 16:40:31 +08:00
用 vim 吧
:g/^\$\$.*\$\$$/s/_/\\_/g |
6
P233 2015-03-16 17:58:42 +08:00
|
7
discrete OP @P233 啊还有一个问题,如果是在$$和$$之间的所有单个存在的$(也就是不会有$$以上)前添加一个\,该怎么改写呢?
|
8
P233 2015-03-18 17:45:37 +08:00
vim 的正则预查我搞不定,我应该会替换全部 $ ,然后再把两个的 $$ 换回来
:g/^\$\$.*\$\$\s*$/s/_/\\_/g |
9
P233 2015-03-18 17:47:24 +08:00
还没修改,不小心发出去了
:g/^\$\$.*\$\$\s*$/ 匹配以 $$ 开头和结尾的行,后面跟替换命令,比如 s/\$/\\\$/g |
10
discrete OP @P233 我又试了几次,才发现问题所在囧:我的不一定是每行一个这样的式子,而是可能写着写着就$$ \pi_t \ $$这样……如何不匹配行而是仅匹配行内的片段?
|
11
P233 2015-03-18 19:49:54 +08:00
抱歉,不了解 latex 以为是整行整行的。可以非贪婪匹配 $$ 与第一个出现的 $$,像这样 :g/\$\$.*?\$\$/ 后面跟着替换命令 s/
|