我正在写一个脚本来修改CSV文件替换字符串指定列。 这是我的格式文件:使用awk
“ID”, “类型”, “日期”, “放”, “版本”
“1”, “安全更新”, “2014年9月23日”, “1.3-0.1”,“2”
“2”“Bug修复”“2014-09-23”“1.3-0.1”“2”
“3”“增强”“2014- 09-23" ,‘1.3-0.1’,‘2’
我想改变‘安全更新’为‘高’,‘修正错误’,以‘中’和‘增强’来“普通”
没有人给我一个想法?
谢谢
我正在写一个脚本来修改CSV文件替换字符串指定列。 这是我的格式文件:使用awk
“ID”, “类型”, “日期”, “放”, “版本”
“1”, “安全更新”, “2014年9月23日”, “1.3-0.1”,“2”
“2”“Bug修复”“2014-09-23”“1.3-0.1”“2”
“3”“增强”“2014- 09-23" ,‘1.3-0.1’,‘2’
我想改变‘安全更新’为‘高’,‘修正错误’,以‘中’和‘增强’来“普通”
没有人给我一个想法?
谢谢
这会在整个文件中用您想要的替换替换关键字的每个实例。
awk '{gsub(/Security Update/,"High")}; 1'
awk '{gsub(/Bug Fix/,"Medium")}; 1'
awk '{gsub(/Enhancement/,"Normal")}; 1'
但请注意,即使它们不在第二列,它也会与关键字匹配。
鉴于此示例文件:
"id","type","date","release","version"
"1","Security Update","2014-09-23","1.3-0.1","2"
"2","Bug Fix","2014-09-23","1.3-0.1","2"
"3","Enhancement","2014-09-23","1.3-0.1","2"
这是很容易在使用Python改变:
$ python -c '
import csv, fileinput
update={"Security Update": "High", "Bug Fix": "Medium", "Enhancement":"Normal"}
for line in csv.reader(fileinput.input()):
if line[1] in update: line[1]=update[line[1]]
print ",".join(repr(e) for e in line)' file.csv
'id','type','date','release','version'
'1','High','2014-09-23','1.3-0.1','2'
'2','Medium','2014-09-23','1.3-0.1','2'
'3','Normal','2014-09-23','1.3-0.1','2'
用sed可以做到这一点。
sed 's/Security Update/High/g;s/Bug Fix/Medium/g;s/Enhancement/Normal/g'
你应该为此使用awk。阅读教程。 – 2014-09-26 02:25:15