打印最后一个字段

1 ksh sed awk perl

如何打印行中最后一个单词之前的单词(使用 ksh 或 awk 或 sed 或 perl 一行)

示例 1:

  echo one two three
Run Code Online (Sandbox Code Playgroud)

将打印“两个”

示例 2:

 echo 1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

将打印“5”

Chr*_*own 8

使用 awk:

awk '{ print $(NF-1) }'
Run Code Online (Sandbox Code Playgroud)

NF 是字段的数量——这里发生的所有事情都是从总字段长度中减去一个以获得倒数第二个字段。

使用 perl:

perl -lane 'print $F[-2]'
Run Code Online (Sandbox Code Playgroud)

一个包含字段的数组被创建为@F(就是这样-a做的),我们得到倒数第二个字段的值(带有索引-2)。

使用 sed 的可口性稍差一些,因为它没有任何字段的概念。我建议改用上述方法之一。