Shell 打印文件的最后5行

Shell 打印文件的最后5行

经常查看日志的时候,会从文件的末尾往前查看,于是请你写一个 bash脚本以输出一个文本文件 nowcoder.txt中的最后5行
示例:
假设 nowcoder.txt 内容如下:

#include<iostream>
using namespace std;
int main()
{
int a = 10;
int b = 100;
cout << "a + b:" << a + b << endl;
return 0;
}

你的脚本应当输出:

int a = 10;
int b = 100;
cout << "a + b:" << a + b << endl;
return 0;
}

题解-awk

首先想到awk,用于处理文件的格式化输出

awk里可以通过内置变量NR获得总行数,NR-4 就获取到了最后4行的开头,然后再循环输出就行了。
但是NR获取总行数是在最后所有数据都处理完毕了,所以我们在处理每一行的时候需要把数据存储起来。

awk '{arg[NR]=$0}  END{for(i=NR-4;i<=NR;i++) print arg[i]}'

题解-tail

tail -5 nowcoder.txt
tail -n5 nowcoder.txt
posted @ 2021-12-03 10:26  rananie  阅读(416)  评论(0编辑  收藏  举报