单行bash、shell、perl命令

时间:2022-08-09 08:43:45
  • 主题:单行经典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 更新至此,待继续。。。