您的位置:首页 > 运维架构 > Shell

单行bash、shell、perl命令

2015-09-21 22:16 537 查看
主题:单行经典bash、shell、perl命令

作者:luomg

摘要:


会陆陆续的写自己工作中的常用有意思的命令,争取你能看完后就能搞定常见操作,

且尽量自少提供基本shell、perl的实现方式

有的写在一行或许略显牵强,但是为了方便还是写在一行

命令开始..........



001查看当前目录最大的10个

du  -mg .|sort  -k1nr|head   -n 10                            #AIX
du  ./ --max-depth=1   --block-size=1G|sort  -k1nr|head -10   #Linux


002打印标签关键字之间的内容

awk  '/CREATE.*/,/\)/' run.log                                 #awk
perl  -ne  'print if/CREATE.*/../\)/' run.log                  #perl


003打印标签关键字之外的内容

perl  -ne  'print unless/CREATE.*/../\)/' run.log              #perl


004打印指定范围的行

awk '10<=NR && NR<=20{print NR,$0}'  20150619.log              #awk
perl -ne  'print if($.>3 && $. <10)' cmd.sh                    #perl


005统计日志中访问次数最多的IP,并按逆序排序

perl -ne '{$user{$&}++ if/\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b/}END{foreach $key (sort {$user{$b} <=> $user{$a} } keys %user){print "ip=$key,count=$user{$key}\n";}}' bomc.log              #perl


结果

ip=135.10.21.250,count=28824

ip=135.10.21.136,count=26543

ip=135.10.21.214,count=21342

ip=135.10.21.248,count=3470

ip=135.10.21.176,count=15

ip=135.10.29.236,count=11



006统计日志文件大于1G的文件,并降序排列

find  ./ -name "*.log"   -exec  du  -sm {}  \;|awk  '$1>1024{$1=$1/1024;print}'|sort  -k1nr
find  ./ -name "*.log"   -exec  du  -sk {}  \;|awk  '$1>1048576{$1=$1/1048576;print}'|sort  -k1nr  #AIX LINUX SUNOS通用



2015年11月2日 14:01:18 更新日志文件大小查看

2015年9月21日 23:34:06 更新至此,待继续。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: