Archive for the ‘软件’ Category
rename-批量重命名命令
原来还很麻烦的用for循环(Ubuntu下批量重命名),其实只用rename就够了。比如,要把所有的文件名改为小写:
rename ‘tr/A-Z/a-z/’ *
把所有文件的后缀由rm改为rmvb
rename ’s/.rm$/.rmvb/’ *
替换时,只匹配第一次找到的子串,如果要替换所有匹配到的子串,需要添加g,比如有以下文件:
1.txt,11.txt,111.txt
命令
rename ’s/1/a/’ *.txt
得到的结果是
a.txt, a1.txt, a11.txt
而,命令
rename ’s/1/a/g’ *.txt
得到的结果是
a.txt, aa.txt, aaa.txt
Google Reader可以订阅任何网页——好消息?坏消息?
之前,对于没有提供RSS输出的网站,我一直使用Page2RSS订阅网页的更新,现在Google Reader直接提供了这一功能。应该说是好消息,但是谁知道呢。

Mysql乱码问题(备忘)
升级网站的时候,php版本高了,mysql的版本也高了,再加上原来没经验,用的都是GBK,没用UTF8,数据库导过去经常乱码。
两次成功的经验如下。
先保证phpmyadmin中看到的字符是正确的,再在mysql_connect语句之后加一句mysql_query(“SET NAMES ‘GBK’”),差不多就可以了。

Sage 4.3今日发布
Sage 4.3今日发布,二进制版本已经可以下载。具体可以到主页查看:http://www.sagemath.org。还不清楚这次有哪些更新。

看图不说话20091224
翻译Sage文档的准备工作
打算翻译一下Sage的文档。Sage的文档完全是用reStructuredTEXT写成的,由Sphinx管理,对应的翻译就行了,但是为了与原文档保持相同的风格,还是折腾了好久。这里记录一下。
环境是:Ubuntu+Sage 4.2.1+CTeXLive 2008。以翻译Sage Tutorial为例,需要做以下准备工作。(下面用$SAGE代替sage的主目录)
- 转到$SAGE/devel/sage-main/doc/目录;
- 在common目录中的builder.py文件中,找到
LANGUAGES = ['en', 'fr']
修改为:
LANGUAGES = ['en', 'fr', 'zh']
- 新建zh子目录,并将en子目录下的tutorial目录复制到刚才新建的zh目录中 (如果是翻译其他文档,复制相应的目录);
- 修改zh目录下的conf.py文件:
- 在
import sys, os
这一行后 添加 两行:
reload(sys) sys.setdefaultencoding('utf8') - 在conf.py文件最后添加:
latex_preamble='\usepackage{ctex}'latex_premble+='\usepackage{ctex}\n\punctstyle{CCT}'
- 在
- 修改$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/texinputs/Makefile文件,将其中的“pdflatex”全部替换为“xelatex”(共有5处);
- 将$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/writers/latex.py中的“\\usepackage[utf8]{inputenc}”中的“utf8”修改为“latin1”,即“\\usepackage[latin1]{inputenc}”。
如果上述操作正常的话,就可以开始翻译了。将zh/tutorial下的所有.rst 文件翻译为中文后,即可进行编译。编译的方法如下:
- 转到$SAGE目录;
- 查看所有文档列表:
./sage -docbuild -D
此时应该可以看到“zh/tutorial”选项;
- 编译:
./sage -docbuild zh/tutorial html ./sage -docbuild zh/tutorial pdf
编译结果会在编译信息最后一行提示。
用grep在子目录中指定的文件类型中查找
grep -r abcd *.py
这样的命令得不到你期待的结果,而
grep -r abcd *
这样得到的结果又太多,仍然不是你想要的。
正解是:
find . -name *.py|xargs grep asdf
注:这是一个困惑我很久的问题,今天在 这里看到 一种解决方案 。 有人在留言中给出另外一种方法
find . -iname ‘*.cc’ -exec grep -nH ‘{}’ \;
但是看上去比较复杂,我不喜欢。
reStructuredTEXT输出为LaTeX以及公式的问题
中文的rst文件,输出为LaTeX文件:
在home目录下编辑.docutils文件,内容如下:
[latex2e writer]
documentclass: article
documentoptions: 12pt a4paper
output-encoding: utf-8
stylesheet: /home/username/docutils.tex
前几行没什么可说的,最后一行所指定文件的内容如下:
\usepackage[slantfont,boldfont,CJKaddspaces,CJKchecksingle]{xeCJK}
\CJKlanguage{zh-cn}
\setmainfont{Times New Roman}
\setCJKmainfont{Adobe Song Std}
\usepackage{CJKfntef}
我这是想用xelatex,如果是用CCT或者CTEX,语句相对少些。大家自己改吧。
公式的话,在文件头添加
.. role:: raw-math(raw)
:format: latex html
行内公式这样写:
If :raw-math:`$x=5 \times 3$` then :raw-math:`$x$` is
注意,冒号后面没空格!
独立公式这样写:
.. raw:: latex html
$$ W \approx \sum{f(x_k) \Delta x} $$
$$ W = \int_{a}^{b}{f(x) dx} $$
参考源:
- Docutils Configuration: http://docutils.sourceforge.net/docs/user/config.html
- reStructured Text tips and tricks: http://www.programmerq.net/rsttricks.html
- [tip] python-docutils: rst2latex create chinese pdf(繁体中文): http://kalug.linux.org.tw/~lloyd/bblog/archives/2009/11/09/%5Btip%5D_python-docutils:_rst2latex_create_chinese_pdf/
注:
如果是使用Sphinx,那么对于公式的支持就不用这么麻烦了,可以直接使用:math:和.. math::这样的命令,因为Sphinx支持rST扩展,用上面的方法,反而会出很多问题。
Imagemagick 合并两个图像
composite基本用法示例:
composite -gravity southwest 1.png 2.jpg 3.jpg
gravity原意是重力,这里可以理解为对齐的方式。上面命令中中左下角对齐。1.png是前景图,2.jpg是背景图,3.jpg是输出结果。
btw: 有人说GraphicsMagick效率比Imagemagick效率更高,不知道真假。
纪念Opera Mini
(无正文)

