#!/usr/bin/python import sys fin=open(sys.argv[1]) fout=open(sys.argv[1]+'.new',"w") line=fin.readline() while line!='': line=line.replace(sys.argv[2],sys.argv[3]) fout.write(line) line=fin.readline() fin.close() fout.close() 各linux里基本都有python的,将上面保存为rp.py,
替换某文件中
字符串格式 ./rp.py ~/tmp.txt aaa xxx 将自己家目录中的tmp.txt中所有aaa替换为xxx 新产生的文件也在tmp.txt目录中,叫tmp.txt.newshell中有两种比较,一种是字符串比较,直接使用运算符号进行比较,一种是值的比较(即数字的比较)只能使用关键字进行比较即-eq -lt等
当然也能使用关键字进行字符串的比较,比如-z 来判断一个字符串是否为空
来一个例子
#!/bin/bash
a=1
if [ $a = 1 ]
then
echo =
fi
if [ $a -eq 1 ]
then
echo eq
fi
这时第一个if中的a既是进行了字符的比较,第二个if中是数值的比较。但结果是既输出了= 也输出了eq。就是说a即和数字的1相等,也和字符的1相等
我这里一直是输出a的,现象都跟你描述的不一致啊。
如果改为:if [[ "$a" = "a*" ]]then ,才输出b。
你这里用的是通配符,其实可以用正则匹配:
if [[ "$a" =~ "a.*" ]]then
这样也是输出a
评论列表(0条)