shell 脚本应用《八》多个脚本命令例子

写一个脚本,实现判断192.168.0.0/24网络里,当前在线用户的IP有哪些
命令:bash

nmap -sP 192.168.0.0/24
脚本1网络

#!/bin/bashide

for I in seq 1 255
do
ping -c 2 -W 2 192.168.0.$I &>/dev/null
if [ $? -eq 0 ]
then
echo -e "192.168.0.$I is up."
else
echo -e "192.168.0.$I is down."
fi
donecode

单词及字母去重排序案例排序

[root@localhost scripts]# sed 's#[,.]##g' <test.log|tr " " "\n"|sort|uniq -c |sort -rn|head -5
4 the
3 to
2 was
2 months
2 I
[root@localhost scripts]#ip

[root@localhost scripts]# tr " ," "\n" <test.log|awk '{S[$1]++}END{for(k in S) print S[k],k}'|sort -rn|head -5
4 the
3 to
2 was
2 months
2 I
[root@localhost scripts]#it

[root@localhost scripts]# awk -F "[ ,.]+" '{for(i=1;i<NF;i++)S[$i]++}END{for(k in S) print S[k],k}' test.log |sort -rn|head -5
4 the
3 to
2 was
2 months
2 I
[root@localhost scripts]#class

[root@localhost scripts]# sed 's#[,. ]##g' test.log|grep -o "."|sort|uniq -c|sort -rn|head -5
33 t
20 o
19 e
18 n
17 i
[root@localhost scripts]#test

按字母出现频率降序排序awk

方法1:去空格特殊字符后,而后利用grep的-o将字符竖向排列后处理。
[root@localhost scripts]# sed 's#[,. ]##g' test.log|grep -o "."|sort|uniq -c|sort -rn|head -5
33 t
20 o
19 e
18 n
17 i
[root@localhost scripts]#

[root@localhost scripts]# sed 's#[,. ]##g' test.log|grep -o "."|awk '{S[$1]++}END{for(k in S) print S[k],k}'|sort -rn|head -5
33 t
20 o
19 e
18 n
17 i
[root@localhost scripts]#

[root@localhost scripts]# sed 's#[,. ]##g' test.log|awk -F "" '{for(i=1;i<NF;i++)S[$i]++}END{for(k in S) print S[k],k}'|sort -rn|head -533 t20 o18 n18 e17 i[root@localhost scripts]#