打印文本文件的最后一行

时间:2016-01-27 13:43:54

标签: bash awk

我有一个这样的文本文件:

    1.2.3.t
    1.2.4.t

    complete

我需要打印最后一个非空行和两行作为两个变量。输出应该是:

 a=1.2.4.t
 b=complete

我为最后一行尝试了这个:   B = awk '/./{line=$0} END{print line}' myfile 但是我不知道。

2 个答案:

答案 0 :(得分:2)

grep . file | tail -n 2 | sed 's/^ *//;1s/^/a=/;2s/^/b=/'

输出:

a=1.2.4.t
b=complete

答案 1 :(得分:1)

awk救援!

$ awk 'NF{a=b;b=$0} END{print "a="a;print "b="b}' file
a=1.2.4.t
b=complete

或者,如果你想要真正的变量赋值

$ awk 'NF{a=b;b=$0} END{print a, b}' file 
  | read a b; echo "a="$a; echo "b="$b

a=1.2.4.t
b=complete

如果值中有反斜杠,则可能需要read的-r选项。