Guest User

Untitled

a guest
May 26th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. Dump() {
  2. printf "%07x: " $byte
  3. while read -s -d '' -r -n 1 sym; do
  4. byte=$(($byte+1))
  5. printf -v cod "%02x" "'$sym"
  6. echo -n "$cod"
  7. if [[ "$cod" < 20 || "$cod" > 7e ]]; then str=$str.; else str=$str$sym; fi
  8. if [ $(($byte % 2)) -eq 0 ]; then echo -n " "; fi
  9. if [ $(($byte % 16)) -eq 0 ]; then
  10. echo -n " $str"
  11. printf "\n%07x: " $byte
  12. str=''
  13. fi
  14. done < $1
  15. let sdvig=16-$byte%16
  16. if [ $(($byte%2)) -eq 0 ]; then let sdvig=$sdvig*2+9-$byte%16/2; let sdvig=$sdvig+1
  17. else let sdvig=$sdvig*2+9-$byte%16/2; fi
  18. if [ $(($byte%2)) -ne 0 ]; then let sdvig=$sdvig+1; fi
  19. printf "%' '$(($sdvig-1))s$str\n" " "
  20. #echo $(($byte%16)) $(($byte%16/2)) $sdvig!
  21. }
  22.  
  23. tmpIFS=$IFS
  24. IFS=""
  25. tmpLANG=$LANG
  26. LANG=C
  27. byte=0
  28. str=''
  29.  
  30. if [ -z $1 ]; then exit; fi
  31. if [ -f $1 ]; then Dump $1; fi
  32. if [ "$1" == "-h" ]; then echo Программа xxd.sh выводит дамп файла по 16 символов в строке;
  33. echo Для запуска программы введите ./xxd.sh [имя файла]
  34. fi
  35.  
  36. IFS=$tmpIFS
  37. LANG=$tmpLANG
Add Comment
Please, Sign In to add comment