我有以下形式的数据:
我需要对数据进行排序,以便只对奇数行进行排序,并根据奇数行对相应的偶数行进行排序.即,仅使用奇数行进行文件的排序,即仅对以下行进行排序:
至
偶数行得到副本.例如,上面的排序顺序是:
现在偶数行“< G>< k>”jd“”l“.”总是出现在奇数行“< A>< B>< C>< D>”之后.并且偶数行“< E>< F>< G>>< G>”abc“.”总是出现在奇数行“< A>< B>< D>< F>.”之后.并且偶数行“< K>< J>< N>< D>.”出现在奇数行< j>之后< L个; < N> “JD”. 我尝试使用带有并行选项的linux sort命令,因为我的文件大小是200 GB – 但这样做会使奇数行的顺序受到干扰.有没有办法使用linux sort命令或使用一些python程序我可能实现200 GB文件的所需行为 解决方法: 由于你使用的是linux,我认为你安装了vim(默认情况下我的ubuntu机器上有一个最小版本). 我相信vim可以处理大文件而不会窒息(不像记事本) >使用vim,将每一行合并到它下面的一行 input.dat
joined.dat:
g是全局命令,它匹配具有行开始(^)(每行)的每一行并执行join命令. 然后它保存(覆盖!)作为joined.dat并退出 >像通常使用sort命令一样对joined.dat文件进行排序 Sorted.dat
>“取消加入”你在第一步加入的内容
假设您的初始文件在每行末尾都有一个点. 注意:如果你使用相同的文件作为sed的输入和输出,我相信你可以得到一个空白文件. finishedproduct.dat:
在这种情况下,sed基本上替换点和换行符的点和两个空格,有效地替换vim引入的两个空格来连接行. 我知道它不是一个非常优雅的解决方案(更不用说pythonic)了,但它规避了“必须编写自定义程序”以及它涉及的内存问题. 😉 来源:https://www./content-1-291451.html |
|