pv: -s: পূর্ণসংখ্যার যুক্তি প্রত্যাশিত


1

আমার একটি স্ক্রিপ্ট রয়েছে যাতে আমি এই আদেশটি চালাচ্ছি:

pv -s `du -sb file1.data | awk '{s += $1} END {print s}'`

এবং এটি নীচে ত্রুটি দেয়:

pv: -s: integer argument expected

সুতরাং যখন আমি এই কমান্ডটি চালিয়েছি du -sb file1.data | awk '{s += $1} END {print s}', দেখে মনে হচ্ছে আউটপুটটি আসবে:

1.03131e+10

তাহলে আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি?


এটি আপনার কম বয়সী সংস্করণ এবং আপনি কোন সিস্টেমে আছেন তার উপর (কমপক্ষে) নির্ভর করে। printfপরিবর্তে ব্যবহার করার চেষ্টা করুন s +=, আপনি আউটপুট পদ্ধতিটিকে আরও সহজভাবে পরিবর্তন করতে পারেন। তবে আমাকে একটি প্রশ্ন করার অনুমতি দিন: কেন? আপনি এই বিবৃতিটি কীসের জন্য ব্যবহার করবেন?
লেনি

উত্তর:


2

প্রিন্টফ ব্যবহার করে এটি বিন্যাস করুন:

du -sb file1.data | awk '{s += $1} END {printf "%d\n", s}'

অথবা হতে পারে আপনার %ldসত্যিকারের বিশাল সংখ্যার প্রয়োজন:

du -sb file1.data | awk '{s += $1} END {printf "%ld\n", s}'

এবং যদি এটি ব্যর্থ হয় (যেমন আমি 1e32 এর মতো সংখ্যার সাথে ফ্রিবিএসডি তে পরীক্ষা করেছি), তবে এটি চেষ্টা করুন:

du -sb file1.data | python -c $'import sys\nt=0\nfor line in sys.stdin:\n    t += int(line.split()[0])\nprint(t)'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.