如何根据占用行数对文本文件进行排序?

如何根据占用行数对文本文件进行排序?

我如何根据占用的行数对文本文件进行排序?

从:

他对她说:“亲爱的孩子,我和我的仆人能在这座小房子里过夜吗?”

“哦,是的,”女孩悲伤地说道,“你当然可以,但我不建议你这么做。别进去。”“为什么不呢?”王子问。

女孩叹了口气说:“我的继母是恶毒的人,她不喜欢陌生人。”

然后他意识到自己来到了一个女巫的房子,但因为天色昏暗,他无法再往前走,所以他进去了。无论如何,他并不害怕。老妇人坐在炉火旁的扶手椅上。她用红眼睛看着陌生人。“晚上好,”她嘶哑地说,

假装很友好。“坐下来休息。”她吹了吹正在小锅里煮东西的煤。女儿警告两人要小心,什么都不要吃,什么也不要喝,因为老妇人酿了邪恶的饮料。他们睡得很香,直到清晨。

经过长途跋涉,他们来到一座小镇,那里住着一位美丽而骄傲的公主。公主曾表示,只要有人能问她一个她无法解答的谜语,她就会嫁给他。但是,如果她解答了谜语,他的头就会被砍掉。公主有三天时间考虑,但她非常聪明,总能在最后期限前解开谜语。王子到达时,已经有九个人以这种方式死去。然而,他被公主的美貌迷住了,愿意为此冒生命危险。

到:

“经过长途跋涉,他们来到一座小镇,那里住着一位美丽而骄傲的公主。她曾表示,只要有人能向她提出一个她无法解答的谜语,她就会嫁给他。但是,如果她解答了谜语,他的头就会被砍掉。她有三天时间考虑,但她非常聪明,总是能在最后期限前解开谜语。王子到达时,已有九名男子以这种方式死亡。然而,他被公主的美貌迷住了,愿意为此冒生命危险。

假装很友好。“坐下来休息。”她吹了吹正在小锅里煮东西的煤。女儿警告两人要小心,什么都不要吃,什么也不要喝,因为老妇人酿了邪恶的饮料。他们睡得很香,直到清晨。

然后他意识到自己来到了一个女巫的房子,但因为天色昏暗,他无法再往前走,所以他进去了。无论如何,他并不害怕。老妇人坐在炉火旁的扶手椅上。她用红眼睛看着陌生人。“晚上好,”她嘶哑地说,

“哦,是的,”女孩悲伤地说道,“你当然可以,但我不建议你这么做。别进去。”“为什么不呢?”王子问。

他对她说:“亲爱的孩子,我和我的仆人能在这座小房子里过夜吗?”

女孩叹了口气说:“我的继母是恶毒的,她不喜欢陌生人。”

答案1

使用 GNU Awk 版本 4.0+

gawk '
  BEGIN {RS=""; ORS="\n\n"} 
  {a[$0] = length($0)} 
  END {
    PROCINFO["sorted_in"] = "@val_num_desc"
    for (i in a) print i
  }
' file.txt

请注意,这是根据字符数排序的,包括标点符号和空格。

答案2

使用这个不太优化的命令行:

cat -n notes.txt | sort -rn | head -6 >> result.txt && \ 
cat -n notes.txt | sort -rn | tail -5 | sort -n | head -3 | sort -rn >> result.txt && \ 
cat -n notes.txt | sort -rn | tail -5 | sort -n | tail -2 >> result.txt && \ 
sed -i 's/^\s*[[:digit:]]*\s*//g' result.txt

信息:它将整个文本分成几部分,然后进行排序并将它们放在一起,并删除用于排序的行号。

结果:

经过漫长的旅行,他们来到一座小镇,那里住着一位美丽而骄傲的公主。公主曾表示,只要有人能问她一个她无法解答的谜语,她就会嫁给他。但是,如果她解答了谜语,他的头就会被砍掉。公主有三天时间考虑,但她非常聪明,总是能在最后期限前解开谜语。王子到达时,已经有九个人以这种方式死去。然而,王子被公主的美貌迷住了,愿意为此冒生命危险。

假装很友好。“坐下来休息。”她吹了吹正在小锅里煮东西的煤。女儿警告两人要小心,什么都不要吃,什么也不要喝,因为老妇人酿了邪恶的饮料。他们睡得很香,直到清晨。

然后他意识到自己来到了一个女巫的房子,但因为天色昏暗,他无法再往前走,所以他进去了。无论如何,他并不害怕。老妇人坐在炉火旁的扶手椅上。她用红眼睛看着陌生人。“晚上好,”她嘶哑地说,

“哦,是的,”女孩悲伤地说道,“你当然可以,但我不建议你这么做。别进去。”“为什么不呢?”王子问。

他对她说:“亲爱的孩子,我和我的仆人能在这座小房子里过夜吗?”

女孩叹了口气说:“我的继母是恶毒的人,她不喜欢陌生人。”

相关内容