Zhang Jiuan’ Notes

vim几个小技巧(批量替换,列编辑)

之前经常为这些小问题搞的头痛,今天把它总结下来,希望对别的同学有用。
vim批量替换:
    :%s/source_pattern/target_pattern/g即可完成
如想把所有的username换成login_name,那么:%s/username/login_name/g就可以了。
简单吧。
vim列编辑:
    有时候也会遇到这种情况,即对文件的列编辑,需要同时修改多行,就类似于ultraedit的alt+c功能。
在linux不妨试一下ctrl+v吧
=====================================================
vi/vim 中可以使用 :s 命令来替换字符串§以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊飕还有很多需要学习),记录几种在此,方便以后查询§
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s /oradata/apras/ /user01/apras1 (使用 来 替换 / [...]

linux seq更为详细的用法

 
以前使for i in提时候对于01 11而烦恼,可查了一把seq,发现还有其它的特点。
seq命令的作用就是打印出一串有序的数字,它主要有以下3个参数构成:
       -f, –format=FORMAT 
              use printf style floating-point FORMAT (default: %g)
-f 指定打印的格式:
例如:
[root@hao32]# seq -f %05g 2 7 
00002
00003
00004
00005
00006
00007
       -s, –separator=STRING
              use STRING to separate numbers (default: \n)
-s 指定分隔符 默认是回车:
例如:
[root@hao32]# seq -s” ” 2 7
2 3 4 5 6 7
       -w, –equal-width
              equalize width by padding with leading zeroes
-w 输出是同宽 前面不足的用 “0″ 补全,即与位数最多的数对齐
例如:
[root@hao32]# seq -w [...]

NLP常用开源免费工具

NLP Toolbox
CLT http://complingone.georgetown.edu/~linguist/compling.html
GATE http://gate.ac.uk/
Natural Language Toolkit(NLTK)
http://nltk.org
MALLET http://mallet.cs.umass.edu/index.php/Main_Page
OpenNLP http://opennlp.sourceforge.net/
English Stemmer
Snowball http://snowball.tartarus.org/
English POS Tagger
Stanford POS Tagger http://nlp.stanford.edu/software/tagger.shtml
TreeTagger http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/
TnT http://www.coli.uni-saarland.de/~thorsten/tnt/
English&Chinese Parser
Stanford Parser http://nlp.stanford.edu/software/lex-parser.shtml
Berkeley Parser http://nlp.cs.berkeley.edu/Main.html#Parsing
English Keyphrase Extractor
KEA http://www.nzdl.org/Kea/index_old.html
English Name Entity Recognizer
Stanford NER http://nlp.stanford.edu/software/CRF-NER.shtml
Chinese Word Segmentator 中科院ICTCLAS http://www.nlp.org.cn/project/project.php?proj_id=6
Stanford Word Segmenter http://nlp.stanford.edu/software/segmenter.shtml
Topic Modeling Tools
Matlab [...]

c++ primer读书笔记

    现在再次读c++primer,感觉还是有很多东西值得学习,现在把一些经典句子摘抄下来。
    实际上在许多实际开发环境中成功的主要评价标准是最后的结果,至于对处理过程的讨论则很可能被视为学究气不切实际,总是得不到重视。虽然这种蛮力型的方案也能解决问题但是它总让人感到不快,而且有些危机感。这种方案吸引人的地方就是简单,我们明白需要做什么虽然它常常很乏味。
    复杂的技术方案一般在开始阶段需要很多时间,这时常常会感觉什么都没有做。而且因为处理过程是自动的,所以就更有可能出错事情不可避免会出错。但好处在于这些错误过程中不但事情很快能完成,而且拓展了想像的空间有时候这个过程也挺有趣的。
    每个指针都有一个相关的类型,不同数据类型的指针之间的区别不是在指针的表示上,也不在指针所持有的值地址上。——对所有类型的指针这两方面都是相同的。不同之处在于指针所指的对象的类型上,指针的类型可以指示编译器怎样解释特定地址上内存的内容,以及该内存区域应该跨越多少内存单元。
If you enjoyed this post, make sure you subscribe to my RSS feed!

返回顶部