linux 通道流

来源:互联网 发布:淘宝金酷娃玩具洒水车 编辑:程序博客网 时间:2024/05/17 01:28

接触linux一年多了,喜欢linux处理问题的方式,不像windows那么死板,非常灵活,这源于linux的命令秉承了unix的哲学:“ doone thing and do itwell”。比如统计一个文件夹的文件数,在win下面,总的文件数只要看一看左下角就知道了,但如果统计具体类型的文件数就比较麻烦了,而在linux下,都比较方便,

统计总的文件数    $ls * | wc -l,
统计具体类型的文件 $ls *.sh | wc -l
但都不是一个命令,因为linux没有单独统计文件数的命令,但可以通过组合命令来达到统计文件数的目的,这里就用到了两个命令,ls 和 wc ,ls相当于win的dir,而 wc -l用于统计文件的行数,“|”表示通道,所以总的意思就是ls列出文件夹内的以.sh结尾的文件目录传递给wc统计出行数,这个值正好就是sh文件的个数。
喜欢用通道解决问题,因为简单,只要一句话。下面这个通道的意思就是把本目录下的所有.cpp文件重命名为.c文件:
ls *.cpp|sed s/'/.cpp'//g|awk '{MV = "mv"};{C = "/.c"};{ CPP="/.cpp"}; {print MV, $1 CPP , $1 C}'|sh
下面这个通道是把以所有以T开头的文件重命名为以D开头的文件:
ls | grep ^T |sed 's/^T//'|awk '{print "mv " "T"$1 " D"$1}'|sh
下面这个通道是把本目录下是生成run批处理文件,然后传递给bash后台运行
ls *.sh |awk '{print "chmod 755 *"}{print "echo "$1}{print "./"$1}'>run|bash &
还写了个比较长的,就不解释意思了
grep$(arping -f -c 1 10.0.0.5|awk '//[/ {print $5}'|sed 's//[//'|sed's//]//'|awk '{if($1=="")print "no";else print $1;}') iplist | awk'{print $2}'
原创粉丝点击