如果给出头号和尾号,如何查找文件的输出

如果给出头号和尾号,如何查找文件的输出

如果文件foo包含 9 行,每行都是文件中行的一位数行号(1 到 9),则此命令在屏幕上的输出是什么:

sort foo foo | tail -2 | head -1

答案是9,但我不明白他们是如何得到它的。该sort命令实际上做了什么?

同样,如果foo包含 99 行,每行都是文件中行的两位​​数行号(01 到 99),则此命令的输出应该是什么:

sort -r foo foo | tail -4 | head -1

答案1

如中所述手动的排序“对文本文件的行进行排序”。这显然是一道考验基础知识而不是做任何事的刁钻题。 astail -1 foo具有相同的输出。

> echo -e "1\n2\n3\n4\n5\n6\n7\n8\n9" > foo
> sort foo
1
2
3
4
5
6
7
8
9
> sort foo foo
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
> sort foo foo | tail -2
9
9
> sort foo foo | tail -2 | head -1
9

如果你错过了 foo 被传递了两次,你可能会认为答案是 8,或者如果你不知道任何命令做了什么,你将无法回答这个问题,只能猜测。

相关内容