-5

我想要一个批处理来读取一个名为 ship.txt 的文件,然后从该文件中获取条目(每个条目都在一行上)并将它们与文件扩展名为 *.map 的文件(比如 test.map)进行比较,寻找匹配,它总是在一行的末尾。然后获取这些坐标(它们将是一对实际上以米为单位的长和纬度的数字)并将这些坐标插入到 perl 脚本中,该脚本会生成一个文件。然后我想读取由 perl 脚本生成的文件,并使用来自 perl 脚本副产品的信息删除在另一个文件中找到的条目。

让我们从头开始。一步一步 第一步:

  1. 我想要一个比较“test.map”和“ships.txt”的批次。如果它找到匹配项,并且匹配项将始终位于 test.map 中的行尾,我希望它能够获取地图坐标。

这就是 test.map 的样子:

代码:

 Pt0=14497903.00,-813490.00,0.00,Mark 1
 Pt1=14417253.00,-812258.00,0.00,Mark 2
 etc...

ship.txt 看起来像这样:

 Mark 1
 Mark 3
 etc...

所以我希望批次读取 ship.txt 并寻找条目“Mark 1”或“Mark 2”等......,如果在 test.map 中找到它,则在“ ,0.00,Mark #" 注意坐标有两位小数,也可以是负数。

这是怎么做到的?

4

1 回答 1

3

这是如何做到的。

以下是如何在 perl 中打开文件以进行读取或写入。然后你必须逐行阅读文件。也许最好使用text::csv来读取文件。

使用 split 或 text::csv 从第一个文件行创建数组,并将其存储在哈希中,键应该是该文件的最后一个字段。

当您遍历第二个文件时,您可以使用此哈希来检查它是否在第一个文件中。

然后将结果写入文件。

尝试编写你的代码,如果你有一个特定的问题,你可以创建一个新的。

或者你可以雇人为你做这件事。

问候

于 2013-03-05T08:08:07.883 回答