awkを使用して特定の列の内容を抽出する

awkを使用して特定の列の内容を抽出する

4つのフィールドがありますが、最後の列から始めて最初の3つの列を無視したいと思います。 awkでNFを使用してこれを行うにはどうすればよいですか?

root     pts/0        192.168.108.1    Mon Mar 19 08:45   still logged in
root     tty1                          Mon Mar 19 08:45   still logged in
reboot   system boot  3.10.0-693.el7.x Mon Mar 19 08:44 - 08:49  (00:04)
root     pts/0        192.168.108.1    Sun Mar 18 13:06 - crash  (19:37)
root     tty1                          Sun Mar 18 13:06 - crash  (19:38)
reboot   system boot  3.10.0-693.el7.x Sun Mar 18 13:01 - 08:49  (19:47)
root     pts/2        192.168.108.1    Sat Mar 17 12:38 - 13:09  (00:31)
root     pts/1        192.168.108.1    Sat Mar 17 10:49 - down   (02:20)
root     pts/1        192.168.108.1    Fri Mar 16 23:17 - 00:30  (01:13)
root     pts/0        192.168.108.1    Fri Mar 16 21:25 - 12:56  (15:31)
root     tty1                          Fri Mar 16 21:25 - 13:09  (15:44)
reboot   system boot  3.10.0-693.el7.x Fri Mar 16 21:04 - 13:09  (16:05)
root     pts/2        192.168.108.1    Fri Mar 16 08:45 - crash  (12:18)
root     tty1                          Fri Mar 16 08:45 - 17:25  (08:40)
syslog                                          **Never logged in**

私はちょうど以下を表示したいと思います:

Sun Jan 19 13:52:08 -0800 2018
**Never logged in**
Fri Mar 16 08:45 - 17:25  (08:40)
Mon Mar 19 08:45   still logged in

ベストアンサー1

単純なawkコマンドを使用して、複数のスペースをフィールド区切り文字として使用して最後の列の内容を印刷できます。デフォルトの区切り文字awkは単一のスペースであるため、最後の列に直接使用すると最後の列の内容が分割されます。このNR>条件は、定義された実際の操作を適用するときに最初の行をスキップするのに役立ちますawk

awk -F '[[:space:]][[:space:]]+' 'NR>1{print $NF}' file

または、sed列と列で区切られた単語の間に複数のスペースがあるとします。ただ最後の列に。

sed '1d;s/^.*  //' file

OPは、last最後の列出力を希望する列コマンドの出力をダンプするために質問を再構成したようです。中間列自体にスペースがある可能性があるため、日付名を含む列を一致させ、そこから行末まで印刷します。

last | awk ' {
     for( i=1;i<=NF;i++ ) {
         if ( $i ~ /Mon|Tue|Wed|Thu|Fri|Sat|Sun/ ) {
             j = 0
             str = ""
             for ( j=i; j<=NF;j++ ) {
                 str = ( str ? (str FS $j):$j )
             }
             print str
             break
         }
     }
 }'

おすすめ記事