⑴ 如何在linux环境下实现txt文本的字符串替换
#!抄/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
⑵ linux变量字符串替换问题
换个角度,替换/bin为/BIN就不会有错啦
echo${path//bin//BIN}
其中/前面要加转义符
或者用sed来替换,
echo$path|版sed's#/bin#/BIN#g'
格式为s#A#B#,将A替换为B。
后面权加个g表示全局替换,即替换所有出现的。
也可以这样写:
echo$path|sed's#[^s]bin#/BIN#g'
[^s]在正则中表示不是s的一个字符。这里只有两种情况,一种是sbin,一种是/bin,这样sbin就可以被排除了。