Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dump() {
- printf "%07x: " $byte
- while read -s -d '' -r -n 1 sym; do
- byte=$(($byte+1))
- printf -v cod "%02x" "'$sym"
- echo -n "$cod"
- if [[ "$cod" < 20 || "$cod" > 7e ]]; then str=$str.; else str=$str$sym; fi
- if [ $(($byte % 2)) -eq 0 ]; then echo -n " "; fi
- if [ $(($byte % 16)) -eq 0 ]; then
- echo -n " $str"
- printf "\n%07x: " $byte
- str=''
- fi
- done < $1
- let sdvig=16-$byte%16
- if [ $(($byte%2)) -eq 0 ]; then let sdvig=$sdvig*2+9-$byte%16/2; let sdvig=$sdvig+1
- else let sdvig=$sdvig*2+9-$byte%16/2; fi
- if [ $(($byte%2)) -ne 0 ]; then let sdvig=$sdvig+1; fi
- printf "%' '$(($sdvig-1))s$str\n" " "
- #echo $(($byte%16)) $(($byte%16/2)) $sdvig!
- }
- tmpIFS=$IFS
- IFS=""
- tmpLANG=$LANG
- LANG=C
- byte=0
- str=''
- if [ -z $1 ]; then exit; fi
- if [ -f $1 ]; then Dump $1; fi
- if [ "$1" == "-h" ]; then echo Программа xxd.sh выводит дамп файла по 16 символов в строке;
- echo Для запуска программы введите ./xxd.sh [имя файла]
- fi
- IFS=$tmpIFS
- LANG=$tmpLANG
Add Comment
Please, Sign In to add comment