文章目录
以下例题均来自于牛客网shell练习
SHELL1 统计文件的行数
- 题目描述:写一个 bash脚本以输出一个文本文件 nowcoder.txt中的行数
- 示例:假设 nowcoder.txt 内容如下:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 100;
cout << "a + b:" << a + b << endl;
return 0;
}
- 你的脚本应当输出:
9
- 有多种求解方法
cat nowcoder.txt | wc -l
cat nowcoder.txt | awk '{print NR}'| tail -n1
cat nowcoder.txt | awk 'END{print NR}'
SHELL2 打印文件的最后5行
- 经常查看日志的时候,会从文件的末尾往前查看,于是请你写一个 bash脚本以输出一个文本文件 nowcoder.txt中的最后5行
cat nowcoder.txt | tail -n 5
SHELL3 输出7的倍数
- 写一个 bash脚本以输出数字 0 到 500 中 7 的倍数(0 7 14 21…)的命令
#echo `seq 0 7 500`
for (( i=0;i<=500;i+=7 ))
do echo $i
done
- 我认为第一行的方法也行的通,但是不知道为什么无法通过
SHELL4 输出第5行的内容
- 写一个 bash脚本以输出一个文本文件 nowcoder.txt 中第5行的内容。
- cat nowcoder.txt | head -n 5 | tail -n 1
SHELL5 打印空行的行号
-
写一个 bash脚本以输出一个文本文件 nowcoder.txt中空行的行号,可能连续,从1开始
-
示例:假设 nowcoder.txt 内容如下:
你的脚本应当输出:
3
5
7
9
10
cat nowcoder.txt | awk '{if (length ==0 ) print NR}'
SHELL6 去掉空行
-
写一个 bash脚本以去掉一个文本文件 nowcoder.txt中的空行