我试图根据行长度对文件进行排序:
我的名字是蒂姆 我喜欢菠萝很多 嗨
这样的事情
喜
我叫蒂姆
我喜欢菠萝很多
我必须在那里包含空格,所以我尝试做的是将每一行放入一个数组中,一行=数组中的1个字符串。然后我尝试对数组进行排序,但这并没有太好用。
答案 0 :(得分:0)
这(来自现有的“重复”答案之一):
perl -ne 'push @a, $_; END{ print sort { length $a <=> length $b } @a }' file
而且:
#!/usr/bin/env perl
use warnings;
use strict;
my @arr;
sub compareLength
{
length $::a <=> length $::b;
}
while (<>)
{
push @arr, "$_";
}
print (sort {compareLength} @arr);
基本上完全相同。 -n
在其后面创建while(<>)
,END
个帖子,比较函数是匿名的(vs命名)和内联。 (但它仍然存在,仍然是一个子程序)。
哦,我将@a
重命名为@arr
,因为我不喜欢两个名为a
(@a
和$a
)的变量<} / p>
我希望这会有所帮助。