如何活学活用sed和awk

September 28th, 2007 1,708 Views

sed和awk都是功能非常强大的流编辑器,如果能活学活用,常常可以节省很多时间,收到事半功倍的效果。

这里引用的两篇文章都不长,而且例子非常丰富,希望能对你有所帮助。

先说说awk:

Awk is an powerful command language that allows the user to manipulate files containing columns of data and strings. Awk is extremely useful, both for general operation of Unix commands, and for data reduction (e.g. IRAF). You might also learn how to use the stream editor sed. Many applications of awk resemble those done on PC spreadsheets.

This file contains a number of examples of how to use awk. I have compiled this table gradually over a couple of years as I’ve learned to do new things. Everyone who reduces data with IRAF should learn the fundamentals of AWK Learning to do even simple things will save you a lot of time in the long run. It should take you less than an hour to read through this file and learn the basics.

There are two ways to run awk. A simple awk command can be run from a single command line. More complex awk scripts should be written to a command file. I present examples of both types of input below.
阅读全文 »

利用sed批量替换一批文件

August 21st, 2007 2,150 Views

在需要对一个文件进行替换的时候,利用sed这个工具非常有用,比如

sed ’s/abc/efg/g’ file

今天遇到一目录的文件需要批量进行替换,这样就比较麻烦了。以前还没有这样做过。man了一下sed的帮助,又从网上查找了一下,发现了一个比较好的解决方案,用参数-in-place。

在Linux平台上,利用如下命令即可达成:

sed -in-place -e ’s/abc/cba/g’ *

不过好像Solaris平台不支持-in-place这个参数,只能用一个小小的程序实现了。

for f in `ls *.html`
do
cat $f | sed s#/style.css#/blog/styles_zh-cn.css#g > tmp.txt
mv -f tmp.txt $f
done

本文参考了车东的一片帖子

利用批处理文件修改DNS

June 26th, 2007 4,493 Views

我有的时候会把公司做不完的事情带回家,在家通过网络写点脚本,做点事情。
家里的网络用的是深圳聚友网络,当初贪图便宜,没想到便宜没好货,网速距慢,而且三天两头修改配置。

麻烦就麻烦在这配置上,每次在家上网,都需要首先修改DNS为一个固定的DNS服务器。然后登录帐号密码方可上网。但是在公司,就没有这么繁琐,直接接上网线即可,所以需要把DNS取消掉,改为自动从DHCP服务器获取。

修改DNS虽说不是很麻烦,不过有的时候总记不得。所以干脆写了一个批处理脚本。Windows提供了一个netsh,可以在命令行下进行IP地址或者DNS的设置。下面对此作简单介绍,然后show一下我的简单的批处理脚本。
阅读全文 »

保持竞争力的十大优势

June 13th, 2007 1,666 Views

转载一篇文章,原题目是< 免于失业的十大软件技术>。 我认为里面说的有些道理。不过有些面面俱到之嫌。其中的大部分技术我多多少少都玩过几年,比如XSLT,C++,Javascript,正则表达式,Linux,SQL等等,不过都不是十分精通,其实老实说,这其中说的十大技术(有些可能谈不上技术啊,比如SQL)如果真的精通某一到两个就不得了了。注意我说的是真正的精通。下面还是看看原文怎么说把。

你是一名正失业的软件技术人员?或许本文章的内容对您有所帮助!
技术仅仅是一种元素,新的技术总是曾出不穷,更重要的是你的学习能力和解决问题的能力。
下边让我们来看看这些免于失业的十大软件技术吧。

1. XML

  首先,你要了解XML。我不是说仅仅是XML规格本身,还包括一系列相关的基于XML的语言:最重要的是 XHTML、XSLT、XSL、DTDs、XML Schema (XSD)、XPath、XQuery和SOAP。那些在过去5年内从未碰过键盘的人,可能不知道XML为何物。XML是一种文本文件,使用与HTML类似的标记。XML能定义一个树状结构,并能描述所含的数据。

阅读全文 »

Solaris管理员常用命令

May 25th, 2007 1,590 Views

整理文档的时候发现的这篇文档,家庭常备,备用。

前面是命令,后面/* */中的是解释。

truss executable
/* Trace doing of given command ( useful debugging ) */
truss -f -p /* Using multiple windows, this can be used to trace setuid/setgid programs */
Arp, ethernet trouble shooting
arp -a .
/* Shows the ethernet address arp table */
arp -d myhost
/* Delete a stale ethernet entry for host myhost */
阅读全文 »

TCL访问Oracle的扩展包-Oratcl

May 25th, 2007 1,972 Views

前阵子,用TCL开发了一个类似QTP的东东,我叫他基于ORACLE的QTP,在部署的时候,需要安装在Linux服务器上,并且对服务器有一定的要求,比如:
1 必须安装TCL
2 必须安装ORACLE的客户端程序
3 必须安装TCL访问Oracle的扩展包-Oratcl

我在一台新安装的服务器上(REL4)进行部署的时候,捣鼓了两天,没有搞定,郁闷死了,不过还是有些收获,下面说说过程。

首先说下背景,这台Linux上的TCL版本是8.3,因为是别人安装,所以Oracle9的客户端安装可能有些问题。另外,Oratcl并没有安装,噩梦就从这个包的安装开始。
阅读全文 »

Linux下的有趣命令

May 18th, 2007 2,010 Views

转载的:来自水木讨论,总结一下。有些是搞笑的,有些也还是很有用的:

yes:输出一串y,有时可以用来对付很多y/n选择的应用
banner:打印字符标题,就是用字符拼出大字来【这个没有弄出来】
ddate:把日历转成什么其他历,Today is Sweetmorn, the 63rd day of Discord in the YOLD 3173
fortune:输出一句话,内容有很多种,据说有唐诗宋词【可能需要安装】
cal 9 1752:打印日历,不过那一个月的有问题,哈,还有个ccal有农历的不知道怎么样了【农历的弄不出来】

cal 9 1752是有历史原因的,以下内容摘自wikipedia
格里历1582年10月15日,合儒略历1582年10月5日,只有意大利、波兰、西班牙、葡萄牙开始用格里历,日期跳过10日。由于新历法是教皇颁布的,新教国家予以抵制。直到18世纪,大英帝国,包括英格兰、苏格兰、以及现在美国的一部份才采纳格里历,也就是儒略历1752年9月2日星期三的次日是格里历1752年9月14日星期四,日期跳过11日。

tac:concatenate and print files in reverse,把文件的行反过来打印
ptx - produce a permuted index of file contents,生成索引?不知道
xev:打印即时的X事件【没弄出来,需要X11吧】
xeyes:出眼睛那个,进X第一都要玩玩吧【需要X11吧】
cowsay/cowthink:打印一个小牛(或其他动物)说话或想像,内容可自定【没弄出来】
factor:分解因数
shred:覆盖文件让它不能再读
aptitude moo/apt-get moo -vvvvv:debian搞笑的
还有make love,翻成中文倒不好玩了
还有人说who am i,不够有意思
有人说 rm -fr /,还有dd if=/dev/zero of=/dev/mem,这就太坏了,没事别试,尤其是root敢死队不要试
csmash:一个3d乒乓游戏,没玩过。【没弄出来】

不同Unix操作系统命令对照

May 15th, 2007 2,187 Views

众所周知,Unix有很多分支,并且Unix又有命令多而著称。更加可恶的是,不同的Unix分支对应的命令不尽相同。本文就是为这个问题而产生的,本文介绍了主流Unix操作系统中一些常见命令的对应关系,主要包括:IBM AIX, FreeBSD, HP-UX, Sun Solaris, LINUX(RedHat)和Tru64. 涉及到的命令都是常用的一些命令,比如添加用户等等。
原文可以参考:
http://www.unixguide.net/unixguide.shtml


Close
E-mail It