Linux文本处理之如何比较很长的字符串

Linux文本处理之如何比较很长的字符串,第1张

#!/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.new

shell中有两种比较,一种是字符串比较,直接使用运算符号进行比较,一种是值的比较(即数字的比较)只能使用关键字进行比较即-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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8920828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存