首页 > 解决方案 > 等效于 head/tail 命令以显示头/尾或一行

问题描述

什么相当于 head/tail 命令来显示 head/tail 或 line?

head2 -2 "abcdefghijklmnopqrstuvwxyz"

=> ab

tail2 -2 "abcdefghijklmnopqrstuvwxyz"
=> yz

标签: linuxbash

解决方案


它相当于如果你想要整个流的第一个/最后一个head字符tail

$ head -c2 <<<"abcdefghijklmnopqrstuvwxyz"
ab<will not output a newline>

$ tail -c3 <<<"abcdefghijklmnopqrstuvwxyz"
yz<newline>

head不会输出换行符,因为它只输出前两个字符。tail将换行计为一个字符,所以我们需要输出 3 来获取最后两个。像您的示例中那样重新格式化命令以获取参数是微不足道的,我将其留给 OP。

cut如果您想要每行的第一个字符,您可以使用:

$ cut -c-2 <<<"abcdefghijklmnopqrstuvwxyz"$'\n''second line'
ab
se

并使用rev | cut | rev助记符获取最后一个字符:

$ rev <<<"abcdefghijklmnopqrstuvwxyz"$'\n''second line' | cut -c-2 | rev
yz
ne

如果要输出超过 10 个字符,则不能使用 cut。是


推荐阅读