如何打印文件中最后一个选项卡之后的元素?
示例:文件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