Shell 面试题

1.使用Linux命令查询file.txt中空行所在的行号

awk '/^$/ {print NR}' file.txt

2.有文件chengji.txt内容如下:
张三 40
李四 50
王五 60

使用Linux命令计算第二列的和并输出

[root@VM_0_8_centos data]# awk -F " " -v sum=0 '{sum+=$2} END{print sum}' chengji.txt 
150

或者直接写成

[root@VM_0_8_centos data]# awk -F " " '{sum+=$2} END{print sum}' chengji.txt 
150

3.如何判断一个文件是否存在

#!/bin/bash

if [ -f file.txt ];then
    echo "文件存在"
else
    echo "文件不存在"
fi

4.对以下数据排序并输出总和

6
7
4
2
8
2
1
5
0
9

[root@VM_0_8_centos data]# sort -n file.txt | awk '{sum+=$1} {print $1} END{print "sum="sum}'
0
1
2
2
4
5
6
7
8
9
sum=44

5.请用shell脚本写出查找文件夹(/opt/data)下所有的文本文件内容中包含有字符”shen”的文件名称

[root@VM_0_8_centos data]# grep -r shen /opt/data | cut -d : -f 1
/opt/data/cut.txt

如果只要文件名

basename `grep -r shen /opt/data | cut -d : -f 1`
原文地址:https://www.cnblogs.com/noyouth/p/12781101.html