全部文章

删除重复内容行

由于要处理一个两万多行的数据,但要删除其中内容重复的行,所以找了几个方法:

1. 用sed替换重复内容,使用命令 -n "G;s/\n/&&/;/^\(.*\n\).*\n\1/d; s/\n//;h;P" "$(FilePath)" (这里是在editplus里的使用,注意$(FilePath)必须是带路径的文件名)。当然sed不需依赖editplus,可以单独使用的。优点:删除重复内容后,顺序结构不变。缺点:不支持UTF-8,处理大文件时(2w多行)就不行了。

2.使用editplus-工具-排序,勾选"删除重复"。可惜不想把内容排序,却被自动排序了。(勾选"区分位置",好像没用?),这个效率相当快~差不多是瞬间完成的,之所以没放弃editplus,确实它的优点有很多。

3.使用一个批处理

@echo off
:: 删除重复的行,但不能保留空行
:: 对不符合变量命名规则、变量个数超过限制的文本都无法正确处理
(echo 清除重复行后的文件内容:& echo.)>str_.txt
for /f "delims=" %%i in (testText.txt) do (
  if not defined %%i set %%i=A & echo %%i>>str_.txt)
:: start str_.txt

当然也不支持utf8,效率也比较慢,处理2w多行用了1分多钟,不过排序没有改变:)。

editplus 正则删除 多行注释

editplus正则不能用于多行,这点比较郁闷。css里面的注释,有些内容都是多行的,而且还可能包含html语句,这样的情况editplus批量删除注释就不能用了。研究了一下,提供下我认为目前比较完美的方法:

editplus删除多行注释:/*......*/的方法:
1、把全文中的“\n”全都替换成“┓”。
2、把“[<|/]/”替换成空。(删除注释里面的“</”、“//”类内容,注释里面带有"/"的话,第三步就查不到了)
3、把“/\*.[^/]*\*/”替换成空。(不加[^/],就会波及到非注释内容)
4、把"┓"再替换成"\n"。

以上替换的时候都要勾上“正则表达式”。虽然步骤比较多,但是总算能实现替换多行了。
 

Tags: 正则 , editplus

吴同学说我舍本逐末

吴同学今天看我在研究editplus的svn时对我说的话(抽了几条出来):

不要被各种新应用和新技术的海洋中迷失了自我
你这是 舍本逐末。
本就一个,而末太多了
http://www.cnblogs.com/lovecherry/archive/2007/10/28/940555.html
你看看末多不多
技术虽然一直在变,但是越是基础和越是抽象的技术变化越慢,越是偏向应用越是具体的技术变化越是快,从性价比上说,学习基础知识性价比更高。
《精通CSS》中有关hasLayout就两页,别人研究它两年。。。

快讲到哲学范畴了~嗯,产生共鸣了~

editplus SVN 设置

SVN在团队开发的时候很强大。VS有VisualSVN插件,但是我不喜欢用VS。vim电脑上也有,虽然很多人说vim也很强大,不过我目前还是习惯editplus。也许以后会去适应vim吧。

1、首先这里有一篇介绍,edtiplus使用SlikSVN来实现update、commit。当然前提也是要安装TortoiseSVN的。

2、发现了一个更好的介绍,是deitplus wiki里面的介绍的方法。

说明:方法1使用的SlikSVN是命令行端,方法2使用的TortoiseProc.exe是GUI端。

下面我把方法二的实现方法稍微翻译一下:

Subversion Commit

说明:用TortoiseSVN校检文件并提交文件到服务器(当然,前提是你安装了TortoiseSVN)
添加方法:编辑edtiplus 工具-用户工具-添加工具-程序
菜单文本:SVN Commit
命令: C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
参数: /command:commit /path:"$(FilePath)" /notempfile /closeonend:0
初始目录: $(FileDir) Check: "Capture output", "Save open files"
勾上"保存打开文件"。可以不勾"捕获输出",根据个人喜好吧,我是没勾。

说明:TortoiseSVN 使用临时文件在 shell 扩展和主程序之间传递多个参数,(低于1.5.0版,必须增加/notempfile参数,如果不这样做,该命令将无法正常工作,/path指定的文件将被删除。)从 TortoiseSVN 1.5.0 开始,废弃/notempfile参数,不再需要增加此参数。

Subversion Update, Delete, Rename, Checkout etc

说明:SVN的更新、删除、重命名、校检等命令
方法:只需要把上面的"参数"里的:/command:commit 用下面的替换(例如:/command:about

:about 显示关于对话框
:log 打开日志对话框
:checkout 打开检出对话框
:import 打开导入对话框
:update 将工作副本的/path更新到HEAD,如果给定参数/rev,就会弹出一个对话框询问用户需要更新到哪个修订版本。为了避免指定修订版本号/rev:1234的对话框,需要加上/nonrecursive和/ignoreexternals参数(这2个参数我没加,还没遇到上述问题)
:commit 打开提交对话框
:add 将/path的文件添加到版本控制
:revert 撤消一个文件自上次更新后的所有的变更
:cleanup 递归清理工作拷贝,删除未完成的工作拷贝锁定
:resolve 将/path指定文件的冲突标示为解决,如果加上/noquestion,将不会提示确认操作。
:repocreate 在/path创建一个版本库
:switch 切换至分枝/标记
:export 将/path的工作副本导出到另一个目录
:merge 打开合并对话框
:mergeall 打开合并所有对话框
:copy 复制工作副本至URL
:settings 打开设置对话框
:remove 从版本控制里移除/path中的文件
:rename 重命名/path的文件
:diff 启动TortoiseSVN设置的外置比较程序
:help 打开帮助文件
:relocate 打开重定位对话框
:help 打开帮助文件
:repobrowser 打开版本库浏览器对话框
:ignore 将/path中的对象加入到忽略列表,仅对文件夹有效。
:blame 打开文件的追溯对话框
:createpatch 创建/path下的补丁文件。
:revisiongraph 显示/path目录下的版本变化图。
:lock 锁定一个文件,可以输入锁定的原因。
:rebuildiconcache 重建windows的图标缓存,当系统图标缓存出了问题才需要这样做(会导致桌面的图标会重新排列)
:properties 显示 /path 给出的路径之属性对话框。

更多的命令看:tortoisesvn docs

我只用了update、commit、add、revert、rename、remove、export、lock、unlock、resolve、checkout、blame、merge,后面几个都是不太常用的了。

另外在editplus wiki,还发现了一个不错的东西:打开当前文件的文件夹(使用svn的话,这个功能就很实用了)。方法,在用户工具里添加-程序:
菜单文本:Current Location(当前文件的文件夹)
命令:%systemroot%\explorer.exe /e,/root,\local disk, 参数:$(FileDir)
初始目录:空着
勾上:退出时关闭窗口、保存打开文件

Tags: svn , editplus

决定把大部分心思放在前端开发

吴同学想叫我去腾讯做网站重构,可惜还是不想离开长沙,不过长沙这边的环境真的比深圳差很多。要是一年前话我肯定去了,呵呵。长沙这边几乎不需要较专业的前端开发人员,因为绝大多数的网络公司都是规模很小很小的,很多公司可能都不要求求职者是否懂div、css。即使要求会div、css,也仅限于此,不管浏览器是否兼容,更不用说html语义化、代码结构是否良好那些了。可能他们也不知道为什么用div、css好吧。在蓝色理想或者落伍者也可以看到,有些人发了招聘信息被别人说是不是在招民工,因为工资比其他大城市的工资低几千。因为公司比较小,为了减小投入,招聘的是“美工”(解释下美工:一般的要求是1.能够设计出有创意的页面,要熟练使用ps、flash,善于色彩搭配。2.熟悉HTML、javascript能够独立制作静态页面。3.熟悉一门后台语言,asp或.net。)呵呵,要求的是全才。在长沙比较专业的团队,我只知道一个。。希望以后能够看到长沙多出现一些对前端技术要求专业的公司。

回到正题,如果什么都发展,那么就什么都不专业,最后只能在“美工”这个年龄段混。当然,一个方面做到精,而其他方面也都有涉猎是好事,怕就怕什么都不精。我决定把大部分心思放在前端开发,对于程序方面了解或者熟悉就够了,虽然一些人夸我有美术细胞,但我更感兴趣的是前端开发。我承认只会一个方面,对相关的技术不熟悉,也是不行的,在团队工作中可能就会出现沟通上的问题。没有侧重点就是没有特点,我想以后更需要的是专业人员组成的团队,而不是一个人组成的“精英”。感觉做设计应该更有前途一些,如果创意好+对UE等知识够了解,应该很受欢迎吧~