有没有办法只在awk中打​​印文件的最后一行然后打印文件的第一行?

Nac*_*ack 7 awk

我已经搜索过,但没有给出答案。我想打印文件中的最后一行(或记录);然后仅使用 awk 打印第一行。我知道如何打印第一行:

NR == 1{print}
Run Code Online (Sandbox Code Playgroud)

最后一行

END{print}
Run Code Online (Sandbox Code Playgroud)

但是,如何切换位置?甚至有可能吗?当我尝试这样做时,我只会遇到错误。有没有办法整合

NR == 1{print}
Run Code Online (Sandbox Code Playgroud)

命令变成END命令?同样,我只想在 awk 中执行此操作。谢谢!

ste*_*ver 18

只需将第一行保存到变量

awk 'NR==1 {first = $0} END {print; print first}' file
Run Code Online (Sandbox Code Playgroud)

前任。给出file

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

然后

$ awk 'NR==1 {first = $0} END {print; print first}' file
line 5
line 1
Run Code Online (Sandbox Code Playgroud)