Advertisement
StenaviN

Untitled

Dec 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.50 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. file=${1}
  4. if [[ -z "${file}" ]]; then
  5.   echo "Path to a file within DDFS is required"
  6.   exit 1
  7. fi
  8.  
  9. zero_sig=c3320def4e1dbbf428c3f89c665c550933c4cfbb62ab8928
  10. ddfs_bmap ${file} 2>/dev/null | grep -v ${zero_sig} | \
  11. awk '
  12. function myprint() {
  13.         blk_skip=(cur_addr - prev_addr)/store_blk_size - 1;
  14.  
  15.         if (start_addr == prev_addr) {
  16.            if (blk_skip == 0 || blk_skip == -1) {
  17.               printf "[ %27x ] blk_read: %-10d\n", start_addr, blk_count;
  18.            } else {
  19.               printf "[ %27x ] blk_read: %-10d blk_skip: % -10d\n", start_addr, blk_count, blk_skip;
  20.            }
  21.         } else {
  22.            blk_count=(prev_addr - start_addr)/store_blk_size + 1;
  23.            printf "[ %12x - %12x ] blk_read: %-10d blk_skip: % -10d\n", start_addr, prev_addr, blk_count, blk_skip;
  24.         }
  25. }
  26.  
  27. NR == 1 { store_blk_size=65568 }
  28. {
  29.   if (NR == 2) {
  30.      start_addr=strtonum("0x"$3);
  31.      cur_addr=start_addr;
  32.      prev_addr=start_addr;
  33.  
  34.      start_sig=$2;
  35.      prev_sig=start_sig;
  36.      blk_count=1;
  37.   } else if (NR > 2) {
  38.      cur_addr=strtonum("0x"$3);
  39.      cur_sig=$2;
  40.  
  41.      if (cur_sig == prev_sig) {
  42.         blk_count=blk_count + 1;
  43.      } else {
  44.         if (cur_addr - prev_addr != store_blk_size) {
  45.            myprint();
  46.  
  47.            start_addr=cur_addr;
  48.  
  49.            start_sig=cur_sig;
  50.            blk_count=1;
  51.         }
  52.  
  53.         prev_sig=cur_sig;
  54.         prev_addr=cur_addr;
  55.      }
  56.   }
  57. }
  58. END {
  59.   myprint();
  60. }'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement