#本脚本通过执行python脚本(3.0),实现shell的sed字符串替换功能
-
#!/usr/bin/env python
-
# -*- UTF-8 -*-
-
# Author:Jerry
-
-
import sys
-
import os
-
import shutil
-
-
parameters=sys.argv
-
if len(parameters) !=4:
-
sys.exit("usage:sed.py old_text new_text file_name")
-
else:
-
py_scripts,old_text,new_text,file_name=parameters
-
if not os.path.exists(file_name):
-
sys.exit("文件 %s 不存在" % file_name)
-
else:
-
if os.path.isabs(file_name):
-
file_full_name=file_name
-
else:
-
file_full_name=os.path.realpath(file_name)
-
-
file_name=os.path.basename(file_full_name)
-
file_path=os.path.dirname(file_full_name)
-
backup_file=os.path.splitext(file_name)[0]+"_bak"+os.path.splitext(file_name)[1]
-
backup_file_name=file_path+os.path.sep+backup_file
-
-
shutil.copy(file_full_name,backup_file_name)
-
-
with open(file_full_name,'w',encoding='utf-8') as f,open(backup_file_name,'r',encoding='utf-8') as bak:
-
for line in bak:
-
f.write(line.replace(old_text,new_text))
-
file=open(file_full_name,'r',encoding='utf-8')
-
for i in file:
-
print(i.strip())
-
file.close()