嗨我有
下面的文本文件输入
326783,326784,402
326783,0326784,402
503534,503535,403
503534,0503535,403
429759,429758,404
429759,0429758,404
409626,409627,405
409626,0409627,405
369917,369916,402
369917,0369916,403
我想将其转换为下面的
条件:
1)输入文件第3列和第1列对于326784和0326784应该是相同的
2)如果它与上述输入文件的情况不同,那么它应该在最后一行打印
输出应该是
326783,326784,0326784,402
503534,503535,0503535,403
429759,429758,0429758,404
409626,409627,0409627,405
369917,369916,402
369917,0369916,403
我正在使用solaris平台
请帮帮我
答案 0 :(得分:0)
我不理解你的计算逻辑,但是一些一般的建议:unix工具awk可以做这样的计算。它理解逗号分隔文件,你可以输出其他逗号分隔文件,由你的逻辑操作(你必须用awk语法表达)。
据我所知,这是unix的做法。 我这样做的方式(作为awk的非专家,只是提到它的完整性;)就是编写一个小的python脚本。 你想要
未经检查的类似python的代码:
f_in = open("input", "r")
f_out = open("output", "w")
for line in f_in.readlines():
ints = [int(x) for x in line.split(",")]
f_out.write("%d, %d, %d\n" % (ints[0], ints[1], ints[0]+ints[1]))
f_in.close()
f_out.close()
这里,逻辑位于f_out.write(...)行中(此示例将输出第一个,第二个和两个输入整数的总和)
只需键入python并查看发生的情况,您就可以检查手头是否有Python解释器。如果有,请将代码保存到something.py中,然后使用“python something.py”
启动它