Shell编程常见面试题(待续)

Shell编程常见面试题(待续)

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

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

2、有文件cj.txt内容如下,使用Linux命令计算第二列的和并输出

张三 70

李四 80

王五 90

cat cj.txt | awk -F " " '{sum+=$2}END{print "sum="sum}'

[root@sandbox-hdp ~]# cat cj.txt | awk -F " " '{sum+=$2}END{print "sum="sum}'
sum=240

3、Shell脚本里如何检查一个文件是否存在?如果不存在该如何处理?

#!/bin/bash
if [ -f file.txt]; then
	echo "文件存在"
else
	echo "文件不存在"
fi

4、用shell写一个脚本,对文本中无序的一列数字排序并求和

cat demo.txt
2
5
1
4
6
3
sort -n demo.txt | awk '{a+=$0;print$0}END{print "SUM="a}'
[root@sandbox-hdp ~]# sort -n demo.txt | awk '{a+=$0;print$0}END{print "SUM="a}'
1
2
3
4
5
6
SUM=21

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

grep -r "zhang" /opt/data
[root@sandbox-hdp ~]# grep -r "zhang" /opt/data
/opt/data/test2.txt:zhang san

# 补充提问,查找文件夹/opt/data下每一行开头含linie的文件名称
grep -r "linie" /opt/data | cut -d " " -f 1
[root@sandbox-hdp ~]# grep -r "linie" /opt/data | cut -d " " -f 1
/opt/data/test1.txt:linie
/opt/data/test2.txt:linie

你可能感兴趣的:(linux)