- 博客(46)
- 收藏
- 关注
原创 shell处理文件的方法(不用文件描述符)
readline (){ >$OUTFILE while read line; do echo $line >> $OUTFILE done < $INFILE}
2014-04-08 14:00:44
222
原创 用shell删除字符串的前后空格
str=" hello world "echo ${str} | awk 'gsub(/^ *| *$/,"")' /^ *| *$/ 正则表达式匹配 以空格开始 或以 空格结尾。 最后的输出是: hello world
2013-11-26 17:38:57
1087
原创 给某个目录下面的文件改名
下面的代码展示了如何将某个目录下面的所有文件的后缀名改成需要的后缀名。 首先从$BABY_CAMERA_TEMP_DIR中找到后缀名为JPG和MP4的所有文件名,然后逐个处理,如果是JPG文件,则把后缀名改成jpg,同时在原来的文件名前面加上MODIFY的日期(20121213,2012年12月13号修改),如果是MP4文件,则只在原来的文件名前面加上MODIFY的日期 find...
2012-03-27 14:59:09
242
原创 用expect自动ssh到远端机器执行命令
先说一下autoexpect,安装这个之后在命令行运行autoexpect -f xxscript.exp test.sh (加入test.sh是一个需要和用户交互的脚本),接下来按照提示输入,执行完成test.sh之后,打开xxscript.exp,运行xxscript.exp,可以不用交互直接执行test.sh。 有两个expect脚本可以解决自动到远端执行命令。 1。auto...
2012-03-17 14:23:20
327
原创 typeset的用法
typeset的用法,用-开启各个选项,用+关闭选项。 -L Left justify and remove blank spaces-R Right justify and to fill with leading blanks-Zn Right justify to n length and fill with leading zeros if the first ...
2012-02-23 17:57:23
649
原创 使用文件描述符进行输入,输出重定向
先看输入重定向,假设我们使用文件描述符3进行输入重定向: 1)把文件描述符3和标准输入stdin(文件描述符为0)关联起来,执行下面的命令之后,所有键盘和鼠标的输入都被重定向到文件描述符3 exec 3<&0 2) 把标准输入stdin重定向到文件,执行下面的命令后,所有的输入都会从$INFILE中读取 exec 0< $INFILE...
2012-02-18 20:57:57
288
原创 shell中的数组
shell中支持数组,下面来看一下如何定义和使用它 1)使用set -A 命令 (bash不支持,ksh支持) set -A MY_ARRAY item1 item2 item3 2)一次加载一项 X=0for item in item1 item2 item3; do MY_ARRAY[$X]=$item ((X = X + 1))do...
2012-02-15 11:45:11
134
原创 shell中测试一个变量是否为空
来看下面的例子,注意双引号是必不可少的。 VAR= if [[ -z "$VAR" && "$VAR" = '' ]]; then echo "var is null"fi
2012-02-15 10:34:29
180
原创 shell中删除一个文件中的空行/重复行
首先看如何删除空行,用sed命令最简单 sed /^$/d file 或者 cat file | sed /^$/d 注:^$是一个正则表达式,匹配空行 再来看如何删除重复行,用uniq uniq file uniq_file (file是有重复行的文件,uniq_file是没有重复行的文件)...
2012-02-15 10:25:27
710
原创 用sed在一个文件的每一行开头或者结尾添加内容
例如,a.txt文件的内容如下: test1test2 用sed -i s/$/hello/g a.txt可以在a.txt结尾添加hello字符串。a.txt结果如下: test1hellotest2hello 用sed -i s/^/hello/g a.txt可以在a.txt开头添加hello字符串。a.txt结果如下: hellotest1h...
2012-02-13 20:57:50
6513
原创 shell中如何产生随机数
例如,我们要产生1-100的随机数,如下脚本可以实现 RANDOM=$$ (用当前进程的PID初始化随机数的种子)UPLIMIT=100RANDOM_NUM=$(( $RANDOM % $UPLIMIT + 1)) echo "$RANDOM_NUM" ...
2012-02-13 20:51:40
485
原创 shell中如何取得字符串的长度
字符串用变量VAR表示,则VAR的长度就是${#VAR} 例如,VAR="hello",${#VAR}结果就是5
2012-02-13 20:46:29
123
原创 进度指示器
当执行一个比较费时的操作时,如果能在终端显示进度指示器,则对用户来说是比较有好的。 下面的代码展示了如何达到这种效果。函数rotate_line是一个死循环,会在终端每隔一秒交替显示不同的字符(-\|/)。主程序调用rotate_line,使其在后台执行,用$!获得其进程ID号;接下来调用比较费时的操作,这里简单模拟一下,sleep 30秒,当费时的操作执行完之后,就杀掉在后台...
2012-02-13 17:54:51
148
原创 shell中逐行处理文件
下面的代码展示了如何逐行处理文件 #!/bin/bashINFILE=$1OUTFILE=$2#empty out file>$OUTFILE#redirection in file at the bottomwhile read line; do echo $line >> $OUTFILEdone < $INFILE...
2012-02-09 20:51:17
181
原创 shell中大小写转换
有两种方式: 1。用tr 例如:UPPERCASE=$(echo $VARIABLE | tr '[a-z]' '[A-Z]') (把VARIABLE的小写转换成大写) LOWERCASE=$(echo $VARIABLE | tr '[A-Z]' '[a-z]') (把VARIABLE的大写转换成小写) 2。用typeset ...
2012-02-03 18:02:36
539
原创 用shell创建encryption key pairs(加密密钥对)
shell可以远端执行命令,用下面的脚本可以创建加密密钥对,这样不用每次执行命令的时候都输入密码。下面的脚本执行的前提条件是在远端机器上有~/.ssh这个目录。 #!/bin/bash# # SCRIPT: keyit_rsaUSER=$1RMT_HOST=$2FILE_PUBKEY=~/.ssh/id_rsa.pubif [[ ! -e "$FILE_PUB...
2012-01-24 18:04:39
707
原创 shell条件判断
一些条件判断 总结需要把判断条件放在[[]]里面,老的脚本用[],不过在[[]]里面可以用&& || 表示并且,或的关系。(())可以把大小比较的条件写在里面,例如 if ((a > b)) ,若是用[[]],则必须写成 if [[ a -gt b]] -b file 若文件存在且是一个块特殊文件,则为真-c file ...
2012-01-24 17:16:18
100
原创 学习vi系列(1)-全文替换
可以把文件中的某个字符串替换成新的字符串,也可以加上正则表达式,把需要替换的行进行替换。 格式1: :s/old/new (把当前行第一次出现的old字符串替换成new字符串) :s/old/new/g (把当前行出现的所有old字符串替换陈gnew字符串) :%s...
2012-01-19 18:42:18
217
原创 python中使用optparse模块简化命令行编写的复杂度
python中的optparse模块用来编写命令行工具非常实用,下面通过一个例子来阐述一下。 ----------------------------person.py 模块: -n/--name | the person's name-a/--age | the person's age-j/--job | the psrson's job ---------...
2011-10-28 15:03:22
238
如何卸载db2数据库
卸载数据库时,经常会出现各种各样的警告,下面我们来看看通常的警告都如何处理。 假定db2的安装目录是 $db2_install 1. 停掉数据库服务,db2stop2. 进入$db2_install/install 目录,运行./db2_deinstall -a命令。3. 如果提示 “the deinstallation process cannot continue ...
2011-07-20 15:15:25
981
原创 Curl用法点滴
CURL-命令行浏览器Curl非常强大,完全可以作为一个REST CLIENT端的工具来使用,而且非常方便快捷。 1. Post 方法1.1 如果在REST 服务器一端,定义了一个addAccount方法,而且这个方法是通过Post方式发送的,服务器端以QueryParam方式接受参数。 @POST public Response addAccoun...
2010-11-16 15:41:25
141
原创 linux下如何挂载一个磁盘
execut the following commands: mkfs.ext3 /dev/sdb mount /dev/sdb /mnt/db
2010-05-19 15:26:17
244
java中读取配置文件
为了降低代码的耦合性,很多时候,我们需要配置文件,比如数据库的连接,这样当数据库连接变化的时候,不用修改应用程序,也不用重新编译。在java中,提供了对property类型的文件的操作,可以很方便的读取属性值,比如下面的一个property文件: ##################################### Database Connectivity Properties...
2009-06-27 10:21:09
124
原创 JDBC连接数据库代码片段
下面的代码片段可以和MySQL数据库建立连接,并读取数据。类似的,可以很方便的连接DB2,Oracle,等,前提是把他们的Driver和classpath关联起来。 如果是DB2,则把driver改成 com.ibm.db2.jcc.DB2Driver,相应的驱动可以从安装DB2的文件夹SQLLIB\java中找到,db2jcc.jar,放在classpath路径下。 相应的,把url改成...
2009-04-29 19:54:17
128
括号匹配问题
下面的一段python代码是检查括号匹配问题。zip(brackets[::2], brackets[1::2])返回的是 (('(', ')'), ('[', ']'), ('{','}'))代码使用两个字典,count_left和right_for_left。 初始的时候 count_left = {'(' : 0 , '[' : 0, '{' : 0} --- key是左边的括...
2009-04-16 10:22:48
76
使用python统计单词出现的个数
最近在看python脚本语言,脚本语言是一种解释性的语言,不需要编译,可以直接用,由解释器来负责解释。python语言很强大,而且写起来很简洁。下面的一个例子就是用python统计单词出现的个数。 import sysimport string#import collectionsif len(sys.argv) == 1 or sys.argv[1] in {"-h", ...
2009-04-13 10:10:04
3350
解压tar.gz文件
在本文中主要阐述如何用程序的方法解压tar.gz文件,tar是把文件打成一个包,并不压缩;.gz是用gzip把打成包的.tar文件压缩,所以成了一个.tar.gz的文件,这是linux下面常见的压缩文件格式。 在尝试了ZipFile之后,发现仅仅jdk里面提供的类及方法不足以解压tar.gz文件,于是用到了commons-compress-1.0.jar,它是apache提供的jar包,需要的...
2009-04-03 14:39:21
628
使用Spring降低类之间的耦合
在Spring入门的文章中提到了可以使用xml文件来对类的属性进行配置,从而不用修改源代码,而改变打招呼的方式。这在一定程度上体现了依赖注入的优越性,在本文中将讲述如何利用依赖注入特性来降低两个类之间的耦合,从而提高代码的质量。例子我们将沿用本博客中设计模式部分的策略模式Duck的例子,但是做了一些改动。 首先定义Duck接口:public interface Duck { public...
2009-04-03 10:43:52
473
原创 Spring入门
Spring 入门(一个简单的例子) lovevrc 转贴 更新:2004-12-28 13:19:37 版本: 1.0 首先我们要先取得Spring的相关档案,Spring的档案放在SourceForge上,网址是:http://so...
2009-04-02 16:00:15
66
Java使用点滴
1. 如何产生一定范围内的随机数字(0~Max之间的数字[0,max)) Random random = new Random();Math.abs(random.nextInt() % Max)];或者(int)(Math.random() * Max) 2. 如何将字节流转换成字符流 new BufferedReader(new InputStreamReader(...
2009-04-01 09:39:40
91
原创 如何使swt窗口居中显示
(1)下面代码可以使swt窗口相对于整个显示器居中shell.setLocation(Display.getCurrent().getClientArea().width / 2 - shell.getShell().getSize().x/2, Display.getCurrent() .getClientArea().height / 2 - shell....
2009-02-21 10:58:03
853
使用SAXParser处理xml文档
http://www.oracle.com/technology/oramag/oracle/03-sep/o53devxml.html 中阐述了如何有效的解析xml文档。 在本文中主要就如何用SAX解析xml文档进行说明。要解析的xml片段如下: ...
2009-02-20 10:16:02
182
原创 命令模式
【命令模式】把指定的动作封装在一个对象中,并为该对象提供一个已知的公共接口。这样一来,即使客户对即将执行的实际动作一无所知,也可以发出请求,而且客户程序不会受到动作改变的影响。...
2009-01-31 18:24:16
64
原创 单例模式
【单例模式】确保一个类只能有一个实例,并且提供一个全局访问点。通常单例模式有如下的形式:public class Singleton {private static Singleton instance;private Singleton(){}public static Singleton getInstance(){ if(instance == null){...
2009-01-27 18:38:59
87
原创 工厂模式
【工厂模式】 定义了创建对象的接口,由子类决定实例化具体的对象。工厂模式让一个类把实例化的工作延迟到子类进行。下面是一个具体的例子,用PizzaStore来展示了工厂模式的使用。从类图中我们可以看出,PizzaStore扮演着Creator的角色,Pizza扮演着Product的角色,这两个类都是抽象类。具体的Product定义在Pizza的子类中,由PizzaStore的子类决定如何创建...
2008-12-30 13:42:56
73
原创 观察者模式
【观察者模式】定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。观察者模式提供了一种对象设计,让主题和观察者之间松耦合。关于观察者的一切,主题只知道观察者实现了某个接口。主题不需要知道观察者的具体类是谁,做了些什么或其他任何细节。任何时候我们都可以增加新的观察者。因为主题唯一依赖的东西是一个实现Observer接口的对象列表,所以我们可以随时...
2008-12-29 09:57:13
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人