存档在 2011年1月

怎样在Linux下批量查找/替换文本内容

2011年1月26日

在图形界面上有许多工具软件可以做到批量查找/替换文本内容。比如sublime text、replace pioneer。

但是怎样在无图形界面的CentOS服务器上通过命令行操作呢?

需求1. 批量查找某个目录下的包含指定内容的文件

grep -rn "找查找的文本" ./

例如:

grep -rn "amon" /var/amon.org

在当前目录下的.c文件中查找字符串password

grep "password" *.c

需求2. 批量查找并替换文件内容

sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./`

例如:

sed -i "s/邮 箱/邮箱/g" `grep -rl "邮 箱" ./`

需求3. 查找包含指定文本的指定类型的文件

find . -type f -name "*"|xargs grep 'yourstring'

需求4. 查找并替换文件内容

find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

在当前目录及其多个子目录中查找文件test.c

find . -name “test.c” -print

比如以下例子就是将当前目录及所有子目录下的所有*文件中的“tom”替换为“jerry”.

find . -type f -name "*"|xargs perl -pi -e 's|tom|jerry|g'

这里用到了Perl语言:

perl -pi -e

在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码。

从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。

案例5. 批量修改文件夹权限

find . -type -d -name *|xargs chmod 755

案例6. 批量修改文件权限

find . -type -f -name *|xargs chmod 644

在当前目录及其多个子目录中查找.vbs文件并删除之
find . -name “*.vbs” -exec rm {} \;

在当前目录及其多个子目录下的.c文件中查找字符串”password”
find . -name “*.c” -print | xargs grep “password”

在当前目录下的.c文件中把字符串”password”替换成”pwd”
perl -pi -e ‘s/password/pwd/g’ *.c

在当前目录下的.c文件中把字符串”password”替换成”pwd”并以.bak扩展名备份
perl -pi.bak -e ‘s/password/pwd/g’ *.c

在当前目录及子目录下的.c文件中替换字符串”password”为”pwd”
find . -name “*.c” -print | xargs perl -pi -e ‘s/password/pwd/g’

参考:http://www.cnblogs.com/ikodota/p/3797645
参考:http://blog.csdn.net/fafa211/archive/2010/10/14/5940844.aspx

一场铁与血的斗争

2011年1月14日

奥托·冯·俾斯麦:

“德国所注意的不是普鲁士的自由主义,而是权力。普鲁士必须积聚自己的力量以待有利时机,这样的时机我们已经错过了好几次。当代的重大问题不是议论和多数人投票能够解决的,有时候不可避免的,要通过一场斗争在解决,一场铁与血的斗争。”

怎样在Godaddy批量获取转移码AuthCode

2011年1月13日
  1. 登陆Godaddy,进入DomainManager;
  2. 鼠标移动到Tools菜单上,会出现下拉列表,点击Exportable Lists;
  3. 进入新界面后选择Add New Export;
  4. Select list type选择All My Domains,然后点Next;
  5. 新界面下点选上Authorization Codes这个选项,然后点Next;
  6. 根据需要选择保存为CSV或XML文件,在Name中随便填写什么都可以,比如Authcodes List,然后点Finish;
  7. 随后在这个Exportable Lists界面下会出现刚添加的记录Authcodes Lists,右侧会显示Download Now;
  8. 点击Download Now后,就可以下载生成的csv或xml文件,里面包含你所有域名对应的转移码(Authcode)。

怎样设置301重定向

2011年1月5日

在老门的《2010年Alexa排名百强中文网站域名分析报告》中统计了其中未解析根域名的域名:cncmax.cn(联通)、icbc.com.cn(工商银行)、cmbchina.com(招商银行)三个。

“这么大的三家公司,竟然不解析根域名,尤其是身为宽带提供商的联通。 除了这三家,老门还发现排名125位的weather.com.cn(中国天气网)也没解析根域名,太不给力了。老门一直在想他们为什么不解析,不需要解析?可像老门这样的懒人经常不愿意多输入3个w。为安全考虑?做个域名重定向,没有任何安全问题啊。”

OK,即便把www.amon.org和amon.org都分别解析到网站,但这样做会分散搜索引擎对网站的权重。但301重定向能完美解决。

把下面的代码放到.htaccess文件,在最后一行加入吧:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^amon.org [nc]
rewriterule ^(.*)$ http://www.amon.org/$1 [r=301,nc]

参考资料:

当启用新域名需要导入原网站所有内页的流量,或者利用闲置域名的流量,同时兼顾SEO问题的话,设置域名301转向,是一个较好的解决方法。

301转向是什么呢?301转向(或叫301重定向,301跳转))当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。

网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但 被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。
» 阅读更多: 怎样设置301重定向