awkで、最後の行のみを出力して処理を行わせる場合、以下のようにすればよい。

awk 'END{処理内容}'
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test4.txt
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
6 ffff
[root@BS-PUB-CENT7-01 ~]#
[root@BS-PUB-CENT7-01 ~]# # 最終行のみ表示
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test4.txt | awk 'END{print}'
6 ffff
[root@BS-PUB-CENT7-01 ~]#
[root@BS-PUB-CENT7-01 ~]# # 最終行のみ表示させて置換
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test4.txt | awk 'END{gsub("f", "q");print}'
6 qqqq

他の行は普通に出力させ、最後の行だけに処理をさせる場合、ちょっと面倒くさい。
個人的に一番手っ取り早いと思う書き方としては、ifで判断できるよう、ファイル自体の行数を事前に取得させてしまう方法だろう。

awk -v eof=$(wc -l <ファイルPATH) '{if (NR==eof) 処理内容;else print $0}' ファイルPATH
blacknon@BS-PUB-UBUNTU-01:~$ cat /tmp/test4.txt
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
6 ffff
blacknon@BS-PUB-UBUNTU-01:~$ awk -v eof=$(wc -l </tmp/test4.txt) '{if (NR==eof) print $1;else print $0}' /tmp/test4.txt
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
6
blacknon@BS-PUB-UBUNTU-01:~$ awk -v eof=$(wc -l </tmp/test4.txt) '{if (NR==eof) print $2;else print $0}' /tmp/test4.txt
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
ffff