使用awk进行文本筛选和排序

今天碰到这样一个需求:“有一个竖线分隔的多列多行文本,需要显示某几列,并按指定顺序显示”,研究了好久,终于给折腾出来了,awk果然是相当强大。

awk ‘{FS=”|”}{OFS=”|”}{print $5,$4,$1}’ 20100109.txt | sed ‘$s/|//g’

其中用到的awk参数的用途如下:

FS:指定输入文件的分隔符。
OFS:指定输出时的分隔符。
%5,$4,$1:依次显示原文件中的第5、第4、第1列。

因为输入文件的最后一行是一行减号(-),前面用awk以后会在后面加好几个竖线(|),所以用sed把竖线(|)去除

sed ‘$s/|//g’

“$”指最后一行;“s/|//g”指替换竖线(|)为空,s是搜索,g是替换

Oracle下查看表的索引信息

平时用惯了PLSQL之类可视化界面的数据库工具,结果到了纯命令行时,一些平时很简单的查询反而很困难了,比如查看某个表的索引信息。因此在此进行个记录,备忘一下。在sqlplus字符界面下,使用如下语句即可,表名请自行替换。

select user_ind_columns.index_name,
user_ind_columns.column_name,
user_ind_columns.column_position,
user_indexes.uniqueness
from user_ind_columns, user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = ‘表名’;

ICDSoft空间对Zend Optimizer的支持情况介绍

最近用的网页程序,有使用到Zend Optimizer,结果放到ICDSoft空间后,发现并不支持,因此就此咨询了客服,答复默认不支持,但可以进行配置(可直接看本文最后的设置方法)。为此我也再查询了一些资料,把信息汇总在此,希望对大家有所帮助。

Zend Optimizer的最新版本为3.3.3,最高只支持至PHP5.2,且Zend官方已不再进行更新,在PHP5.3环境下,只能使用ZendGuardLoader,但由于ZendGuardLoader只支持使用Zend Guard 5.5以后加密的代码,所以如果网页程序没法升级的话,只能变通使用PHP5.2了。ICDSoft的解决办法也是基于这个方法。

ICDSoft空间目前同时支持PHP5.2和PHP5.3,默认是采用PHP5.3进行解析,可通过配置.htaccess文件,设置为使用PHP5.2进行解析:

AddHandler application/x-httpd-php52 .php

为了在ICDSoft上加载Zend Optimizer,还需修改php.ini文件,添加如下配置: Continue reading

iRobot561入手

2012.10 更新:自从2011年8月入手iRobot 561,至今已一年有余,应该说iRobot已经成为不可或缺的家庭一员,目前家里除书房(有台阶上不去)、洗手间(有水)、阳台(有水)未进行打扫外,每两天让iRobot进行一次全面打扫,定时在上班出门的时候,基本2小时左右可以打算完成,打扫两次以后清理一次集尘盒,十分轻松。家里基本不用扫地啦,地板清洁程度80%以上,近期准备入手mint 4200,观望中。

Continue reading

在不安装Microsoft JVM的情况下安装VS 6.0

系统升级到Win7了,要装个VC6来用,点安装的时候提示要先安装JVM,JVM已经老早不更新了,更何况现在系统是Win7,谁知道会不会出问题,所以想要跳过安装JVM,网上搜索了一下,总算找到一个好办法,可以说“极妙”,因为方法就是骗过VS6安装程序,方法如下:

以管理员权限打开命令行窗口(cmd.exe),进入windows目录,执行

echo “” > msjava.dll

这样子就可以顺利的安装VS6了,这下子不会提示要求安装JVM了,等装好以后再删掉msjava.dll这个文件就可以了

PS: 因为用了VS6来安装才会要求要JVM,因为VS里还有VJ++嘛,如果用的是VC6的安装盘,那就没这个要求了,谁叫我喜欢原版的,下了个原版英文企业版的Visual Studio 6…

在AutoIt编译生成的程序中加入版本信息

通过au3编译产生的exe文件,文件信息是autoit自身默认的,如果要进行自定义,就要完成以下两个步骤:

一、下载使用完整版的AutoIt Script Editor (SciTE4AutoIt3)

一开始我也没注意到这个问题,在网上查了半天都没用,最后在au3的官方论坛才找到解答。 以前一直都是下载AutoIt Full Installation,然后用Aut2Exe编译产生文件,这样产生文件就没办法实现自定义信息的功能,即使实现了第二步也没用。必须要下载完整版的编辑器才有这个功能。下载页面是:http://www.autoitscript.com/site/autoit-script-editor/downloads/

二、在au3程序的最头部填写自定义的版本信息

可以在编辑器里通过Ctrl+F7进行设置,也可以自己编辑,具体可以参考SciTE4AutoIt3自带的说明,这里给个简单的例子:

#AutoIt3Wrapper_Icon=ico.ico
#AutoIt3Wrapper_Res_Comment=Your comment here
#AutoIt3Wrapper_Res_Description=Your description here
#AutoIt3Wrapper_Res_Fileversion=1.2.3.4
#AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2012 wswing.net
#AutoIt3Wrapper_Res_Field=Compile Date|%date% %time%

另外还可以设置每次编译的版本自动增加:

#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=1

通过以上两步就可以自定义信息了,自己动手试看看吧~

Windows Live Essentials 2012安装失败

使用wordpress的web方式编写日志,从觉得不方便,搜了一圈发现也只有Windows Live Writer这个比较大众的客户端工具,由于本人一向喜新厌旧,所以选择了最新版的2012进行下载安装,结果安装数次全部失败,本机操作系统为Win7,安装错误码有:Error 0x80040609, 0x80040605,来源有:wllogin-i386, crt110-i386, WLXSuite等等。

Continue reading

启用网站空间的Gzip压缩传输

启用gzip压缩能在花费少量系统资源的情况下,压缩网络传输数据量,目前压缩率基本在50%以上,甚至能达到80%,在网速较慢的情况下,能带来不错的效果。

ICDSoft的空间默认没启用Gzip传输压缩,需要自行设置.htaccess文件来启用,其他使用apache的空间应该也可以照搬。从下面的内容可以看出,对GIF、JPG、PNG等等的图像内容,是不进行压缩的,因为这些内容本身已经是压缩格式,再进行压缩没有太大意义,甚至反而会增加文件大小。

Continue reading

WordPress客户端提示412 Precondition Failed的解决办法

2013.07.05更新:最近发现由于ICDSoft对Apache版本进行升级,原来用的指令已经不能用了,要用新的指令,已更新到文章中,详见下文。

WordPress除了可以通过web方式撰写博客外,还可以利用xml-rpc协议通过客户端来进行发布。今天在手机上下载了WordPress for Android客户端,在登录时提示如下错误信息:

HTTP status code: 412 was returned. Precondition Failed.

经过谷歌和百度搜索,发现是由于空间的安全策略限制导致无法连接,有两种解决办法,均是在.htaccess文件中,添加配置信息,对相应控制关闭。方法有两种,在下面列出来了,由于没有深入了解,不清楚哪种会更安全一些,目前我是用第二种方法。

<IfModule mod_security.c>
SecFilterRemove 114
</IfModule>

<Files xmlrpc.php>
SecFilterInheritance Off
</Files>

由于ICDSoft对Apache版本的升级,现在使用的是mod_security2(原先使用的是mod_security),以上指令已不可用,要使用下面这两种:

<IfModule security2_module>
SecRuleRemoveById 114
</IfModule>

或者

<Files xmlrpc.php>
SecRuleInheritance Off
</Files>

Continue reading