Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:删除尾部的0';awk命令中的s和小数点_Python_Bash_Awk - Fatal编程技术网

python:删除尾部的0';awk命令中的s和小数点

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

我需要从导出中删除尾随的零:

代码正在读取原始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
您可以使用
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是非常错误的。