首页 > 试题广场 >

打印文件的最后5行

[编程题]打印文件的最后5行
  • 热度指数:52277 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
查看日志的时候,经常会从文件的末尾往前查看,请你写一个bash shell脚本以输出一个文本文件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;
}
示例1

输入

#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;
}
tail -5 nowcoder.txt
发表于 2021-01-29 18:28:38 回复(0)

第一次解答的时候我是这样写的
#!/bin/bash
rows=`tail -n 5 nowcoder.txt`
echo $rows
然后提示不对
tail 不带参数默认是打印后10行
-n参数打印最后的xxx行,所以
tail -n 5 nowcoder.txt
发表于 2020-11-17 01:26:11 回复(3)
awk 'BEGIN {x=1} { arg[x]=$0;x++} END{ for (i=NR-4;i<=NR;i++) print arg[i]}'
发表于 2021-10-26 16:33:44 回复(2)
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
     -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<数目> 显示的字节数
    -n<行数> 显示文件的尾部 n 行内容
    --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
    -q, --quiet, --silent 从不输出给出文件名的首部
    -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 
摘自菜鸟教程网
发表于 2021-07-30 23:39:16 回复(2)
tail -n xxx file
能够打印file的最后xxx行,一般使用tail -fn xxx log 来持续输出log

发表于 2020-10-30 15:30:36 回复(0)
tail -n 5
sed -n '5,$p'
awk 'NR>=5{print}'

发表于 2022-05-09 11:20:15 回复(4)
<p>tail -n 5 newcoder.txt</p>
发表于 2020-11-03 15:42:46 回复(1)
看你们答案好复杂,其实只需要两行代码就能搞定了:
#!/bin/bash
tail -n 5 nowcoder.txt
发表于 2022-01-18 10:11:06 回复(1)
awk 'NR>=4{print $0}' nowcoder.txt
发表于 2021-04-25 10:13:08 回复(1)
tail -5 nowcoder.txt 
编辑于 2024-04-25 15:33:32 回复(0)
#!/bin/bash
i=0
while read line
do
    arr[++i]=${line}
done < test.txt
for key in "${!arr[@]}"
do
        if [ ${key} -gt (($(wc -l < nowcoder.txt) - 5))  ]
        then
                echo "${arr[$key]}"
        fi
done
为啥总是报done < nowcoder.txt  这有错啊  本地环境都没事
编辑于 2024-01-01 22:07:41 回复(0)
为什么sed 命令总是提示失败呢
发表于 2023-11-06 20:25:28 回复(0)
tail -n5 nowcoder.txt
发表于 2023-11-04 10:55:47 回复(0)
#!/bin/bash
tail -n 5 nowcoder.txt
发表于 2023-08-31 15:51:54 回复(0)
tail -n 5 filename
发表于 2023-07-07 09:55:14 回复(0)
又学会一招
发表于 2022-12-28 14:21:30 回复(0)
tail -n 5 < nowcoder.txt
tail -n 5 < nowcoder.txt

发表于 2022-12-05 14:50:15 回复(0)
1. tail -5 nowcoder.txt
2. awk 'BEGIN{i=0}{a[i]=$0;i++}END{for(i=NR-5;i<=NR;i++){print a[i]}}' nowcoder.txt
发表于 2022-08-27 17:02:54 回复(0)
awk -v a=`grep -c '' nowcoder.txt` 'NR>a-5'

发表于 2022-08-13 18:54:15 回复(0)
#!/bin/bash
sed -n '4,$p' nowcoder.txt
发表于 2022-08-07 18:39:13 回复(0)