19_Shell练习题
一、获取并打印空行行号
awk '/^$/{print NR}' test.txt
二、求一列的和
awk -v sum=0 '{ sum+=$2 } END{ print sum }' test.txt
三、检查文件是否存在
#!/bin/bashecho "请输入要查询文件的全路径名称:"
read -p "例如:/temp/test.txt" pathif [[ -e $path ]]
thenecho "文件存在"
elseecho "文件不存在"
fi
四、数字排序、去重并求和
sort -nu test.txt | awk '{ sum+=$1; print $1 } END{ print sum }'
五、批量创建用户
下次再学吧 哈哈哈批量创建用户
六、筛选长度大于9的单词
cat test.txt | awk -F '[ ,.!]' '{ for(i=1;i<NF;i++) { if(length($i)>9) print $i } }'
七、单词及字母去重排序
cat test.txt | awk -F '[ ,.]' '{ for(i=1;i<NF;i++) { Word[$i]++ } } END{ for(key in Word) print Word[key],key }' | sort -k1nr,1 | head
八、扫描网络存活主机
#!/bin/bashlet count=0
for ip in 192.168.31.{1..5}
doreceive=$(ping $ip -c 2 | awk 'NR==6{print $4}')if [[ $receive -eq 2 ]]thenecho "${ip}在线"let count++elseecho "${ip}不在线"fi
done
echo "总在线主机:$count"