python:删除尾部的0';awk命令中的s和小数点
我需要从导出中删除尾随的零: 代码正在读取原始tempFile,我需要第2列和第6列,其中包含:python:删除尾部的0';awk命令中的s和小数点,python,bash,awk,Python,Bash,Awk,我需要从导出中删除尾随的零: 代码正在读取原始tempFile,我需要第2列和第6列,其中包含: 12|9781624311390|1|1|0|0.0000 13|9781406273687|1|1|0|99.0000 14|9781406273717|1|1|0|104.0000 15|9781406273700|1|1|0|63.0000 awk命令将表单更改为逗号分隔,并将第2列和第6列转储到tempFile2中—我需要从第6列中删除尾随的零,因此最终结果如下所示: 9781624311
12|9781624311390|1|1|0|0.0000
13|9781406273687|1|1|0|99.0000
14|9781406273717|1|1|0|104.0000
15|9781406273700|1|1|0|63.0000
awk命令将表单更改为逗号分隔,并将第2列和第6列转储到tempFile2中—我需要从第6列中删除尾随的零,因此最终结果如下所示:
9781624311390,0
9781406273687,99
9781406273717,104
9781406273700,63
我相信这应该会奏效,但却没有成功实施:
awk '{sub("\\.*0+$",""); print}'
下面是我需要调整的代码:$6是删除零的列
if not isError:
print "Translating SQL output to tab delimited format"
awkRunSuccess = os.system(
"awk -F\"|\" '{print $2 \"\\,\" $6}' %s > %s" %
(tempFile, tempFile2)
)
if awkRunSuccess != 0: isError = True
您可以使用gsub(“\\.*0+$”,“”,$2)
来执行此操作,如下所示:
pax> echo '9781624311390|0.0000
9781406273687|99.0000
9781406273717|104.0000
9781406273700|63.0000' | awk -F'|' '{gsub("\\.*0+$","",$2);print $1","$2}'
9781624311390,0
9781406273687,99
9781406273717,104
9781406273700,63
然而,考虑到您已经在Python中(而且在正则表达式方面它并不懒散),您可能希望以本机方式使用它,而不是启动
awk
进程。试试这个awk
命令
awk -F '[|.]' '{print $2","$(NF-1)}' FileName
输出:
9781624311390,0
9781406273687,99
9781406273717,104
9781406273700,63
您想要的是Python解决方案、awk解决方案还是bash解决方案?如果可能的话,是适合当前代码的awk解决方案?@a.Lat,请参阅我更新的答案awk解决方案:
awk'{sub(/\\\\\\\\\\/,“,”);sub(/\.0*$/,“);}1'
从Python中运行awk是非常错误的。