我需要从导出中删除尾随零:
代码正在读取原始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列中删除尾随零,因此最终结果如下所示:
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
答案 0 :(得分:0)
您可以使用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
过程
答案 1 :(得分:0)
试试这个awk
命令
awk -F '[|.]' '{print $2","$(NF-1)}' FileName
<强>输出:强>
9781624311390,0
9781406273687,99
9781406273717,104
9781406273700,63