আমি কীভাবে কোনও ফাইলের প্রতিটি অক্ষরের (সংখ্যাগত) ASCII মান মুদ্রণ করব?


11

আমি কীভাবে একটি পাঠ্য ফাইলে প্রতিটি অক্ষরের সংখ্যাসূচক ASCII মান মুদ্রণ করতে পারি। পছন্দ করুন catতবে কেবলমাত্র ASCII মানগুলি দেখানো হচ্ছে ... (হেক্স বা দশমিক ভাল)।

অ্যাপল শব্দ (একটি লাইন ফিড সহ) শব্দযুক্ত একটি ফাইলের উদাহরণ আউটপুট এর মতো দেখতে পাওয়া যেতে পারে:

065 112 112 108 101 013 004

উত্তর:


17

এর জন্য স্ট্যান্ডার্ড কমান্ডটি হ'ল odঅষ্টাল ডাম্পের জন্য (যদিও বিকল্পগুলির সাহায্যে আপনি অষ্টাল থেকে দশমিক বা হেক্সাডেসিমাল পরিবর্তন করতে পারেন):

$ echo Apple | od -An -vtu1
  65 112 112 108 101  10

মনে রাখবেন এটি ফাইলের প্রতিটি বাইটের বাইট মানকে আউটপুট করে। এএসসিআইআই বা অন্য কোনও চরিত্রের সেটটির সাথে এর কোনও যোগসূত্র নেই।

যদি ফাইলটিতে প্রদত্ত চরিত্রের সেটটিতে A থাকে এবং আপনি 65 দেখতে চান, কারণ এটি ASCII এ A এর জন্য ব্যবহৃত বাইট, তবে আপনার এটি করতে হবে:

< file iconv -f that-charset -t ascii | od -An -vtu1

প্রথমে সেই ফাইলটিকে ascii এ রূপান্তর করতে এবং তারপরে সংশ্লিষ্ট বাইট মানগুলি ডাম্প করুন। উদাহরণস্বরূপ Apple<LF>EBCDIC- ইউকে-তে 193 151 151 147 133 37( 301 227 227 223 205 045অষ্টালে) হবে।

$ printf '\301\227\227\223\205\045' | iconv -f ebcdic-uk -t ascii | od -An -vtu1
  65 112 112 108 101  10

14

hexdump, od, xxd, অথবা $YOUR_FAVORITE_LANGUAGEসব তা করতে পারে।

% echo Apple | hexdump -C
00000000  41 70 70 6c 65 0a                                 |Apple.|
00000006
% echo Apple | perl -ne 'printf "%vd\n", $_' 
65.112.112.108.101.10
% echo Apple | clisp <( echo '(print (mapcar #'\''char-code (coerce (read-line *standard-input*) '\''list)))' )
(65 112 112 108 101)
% 

চমত্কার উত্তর, থ্যাঙ্কিউ। বিশেষত হেক্সডাম্প-সি। স্টিফেনকে কেবল পুরষ্কার দেওয়া হয়েছিল কারণ তার উত্তরটিও সমাধান হয়ে গেছে, এবং তিনি প্রথম ছিলেন (কেবল একটি চুল দিয়ে) তবে উভয়ই দুর্দান্ত।
এমটিএল দেব

তবুও অন্য আদেশ:python -c "print open('file', 'rb').read().encode('hex')"
jfs

@ জেফএসব্যাসতিয়ান বেটারecho 'Apple' | python -c "import sys;print sys.stdin.read().encode('hex')"
হিমেইল

@ হেইমাইল: ভুল এটি উইন্ডোজে একটি বাইনারি ফাইল দূষিত করতে পারে
jfs

@ হাইমাইল স্টিডিন টেক্সট মোডটি ডিফল্টরূপে ব্যবহার করে যা নিউলাইনগুলি ( os.linesep-> '\n') অনুবাদ করতে পারে
jfs
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.