[原创]Gedit应用实例:批量转换HTML实体字符


Wordprss中代码插件也有不少了,但没有我用得舒服的,代码高亮我也没兴趣。我有段时间用一个代码转换工具——Postable

今天突然想到能不能将目标段落进行批处理,将某些字符转换成HTML实体字符就能避免wordpress输出代码的问题。

幸运的是我在Gedit中发现了插件扩展功能。Gedit首选项中有“插件”选项,其中的“外部工具”,可以执行外部命令和shell脚本。不幸的是,我该用到哪个外部命令或哪个shell脚本是完全没有想法。Google一阵后,了解到Sed可以处理对文本进行拆分,拼合,查找,替换等操作,找到工具了。

因为也是初步接触Sed,只能是多多借鉴前辈的实例了。推敲,实践多次后,终于写出了我要的脚本“代码转换”。
先上脚本(代码转换):

#!/bin/sh
sed 's/</\&lt;/g;s/>/\&gt;/g;s/\//\&#47;/g;s/\]/\&#93;/g;s/\[/\&#91;/g;s/"/\&#34;/g;s/'"'"/'\&#39;''/g'


再进一步解释脚本。
Writing Code in Your Posts一文提到,转换如下7个字符即可满足大部分代码书写的需求。
< = &lt;
> = &gt;
/ = &#47;
] = &#93;
[ = &#91;
" = &#34;
' = &#39;

所以我的脚本“代码转换”要实现的目的就是:找出目标段落中的这7个字符,并用相应的HTML实体字符即可。
主要说明sed后面引号部分内容,相应的拆分为
's/</\&lt;/g;
s/>/\&gt;/g;
s/\//\&#47;/g;
s/\]/\&#93;/g;
s/\[/\&#91;/g;
s/"/\&#34;/g;
s/'"'"/'\&#39;''/g'
参数s表示替换(substitute),格式为 s/替换前的内容/替换后的内容/g (g代表全文检索)
其中\和&字符比较特殊。
&代表替换前的字符串。例如:sed 's/test/& my car/g' 意思为将全文中的“test”替换为“test my car”
\用它来还原一些特殊符号(本例中用\还原& / [ ]等4个字符)
最后替换单引号'这个,我不太明白,参照这里(sed替换:把单引号替换成双引号)写的。

写好脚本之后,再来测试一下。

返回的结果结果就是本文第一张图片。

这么看来,Gedit也能成为字符处理利器,别拿豆包不当干粮。
参考:更多字符实体
sed手册
sed实例123

随机日志

本文链接: http://www.zhaole.info/?p=1118

Tags : , , ,

Google Reader Yahoo Facebook Twitter Digg FriendFeed Delicious Google Translate
这篇日志发表于2010年07月10日 11:38 下午。 你可以订阅该日志的所有评论通过 RSS 2.0。 你可以发表评论,或者引用通告

2 条回应

评论(2)引用通告(0)

  1. 阿普雷

    WP真的是好东西。

    [回复]

    07/11/2010 1:07 下午 | #1 @
  2. 灵亦rEd

    gedit可以干好多事哦

    [回复]

    07/13/2010 12:05 下午 | #2 @

发表评论

(Ctrl+Enter)

XHTML:你可以使用这些标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>