打印每行的最后一个元素

打印每行的最后一个元素

如何打印文件中最后一个选项卡之后的元素?

示例:文件1

A    3    8    6    7
B    4    6    2    3    6    8
c    1    9

会返回:

7
8
9

答案1

您可以巧妙地使用该NF变量awk

awk '{print $NF}' File1

man awk

核因子 当前输入记录中的字段数。

因此,NF将为您提供字段的数量,$NF然后扩展为$3例如您可以在打印语句中使用的字段。

答案2

如果您只想要最后一个字段而不是第一个和最后一个字段,您可以尝试:

rev file | cut -f 1

反转rev文件的每一行并cut仅打印第一个字段(默认情况下字段由选项卡定义)。由于线路已颠倒,因此第一个字段是原来的最后一个字段。

上面的代码适用于您给定的示例,但是,正如 @Bernhard 在下面指出的那样,它将打印比反转的单个字符长的字段。在这些情况下,您将需要第二次转速:

 rev file | cut -f 1 | rev

答案3

您可以使用sed以下操作:

sed 's/.* //' file # where ' ' -- is your delimiter

它将删除分隔符之前的所有符号。如果您的文件是制表符分隔的,请使用:

sed 's/.*\t//' file

答案4

awk确实是完成这里工作的工具,但为了完整起见,这里使用 GNUgrep方式

grep -oE '[^[:space:]]+$' file
7
8
9

相关内容