【发布时间】:2020-08-03 17:04:39
【问题描述】:
我有一个文本文件,其中有需要在两个模式之间排序的行。
我正在编写 Perl 脚本,但似乎没有产生结果。
输入文件如下所示:
BEGIN
This is line10
This is line3
This is line15
...
END
BEGIN
This is line50
This is line12
This is line400
...
END
注意:
模式BEGIN 和END 之间的所有行都需要排序。非常感谢 Perl 脚本的任何指针。
【问题讨论】:
-
您能告诉我们您尝试解析
BEGIN和END之间的数据吗? -
您需要帮助哪一部分?获取分隔符之间的部分?为此,您可以使用 .. 触发器运算符。使用自定义排序功能进行排序?您只需将回调传递给内置排序。我可以帮忙,我只需要知道什么
-
谢谢。我可以得到如下分隔符之间的部分。 if (/BEGIN/ ... /END/){ print "$_ \n"; }
-
排序需要限制在特定的部分。
-
排序需要在该部分的第 5 列进行,例如下面 sort { $a->[5] cmp $b->[5] } @lines;
标签: perl