একটি সিএসভি ফাইলের লাইন সংখ্যা পেতে ইউনিক্স কমান্ড


20

আমি ইনকামিং CSV ফাইল থেকে লাইন গণনা পেতে আছে।

আমি গণনা পেতে নিম্নলিখিত কমান্ড ব্যবহার করেছেন।

wc -l filename.csv

1 রেকর্ড নিয়ে আসছে একটি ফাইল বিবেচনা করুন, আমি একটি সঙ্গে কিছু ফাইল পেয়েছি \* শুরুতে, এবং সেই ফাইলগুলির জন্য যদি আমি উপরের কমান্ডটি ইস্যু করি তবে এটি গণনা প্রদান করে 0

কেন \* ফাইলের শুরুতে গণনাকৃত লাইন হিসাবে নিবন্ধন করবেন না এবং কাছাকাছি কোন কাজ আছে?


চেষ্টা করুন "cat filename.csv | wc -l"
chaput

4
"cat filename.csv | wc -l" যৌক্তিকভাবে "wc -l filename.csv" হিসাবে একই জিনিস করে তবে কম দক্ষ এবং মার্জিত
Alex

Devoloper250, আপনি একটি সামান্য আরো শেষ অনুচ্ছেদ ব্যাখ্যা করতে পারে? একটি উদাহরণ খুব সাহায্য করতে পারে।
Alex

উদাহরণস্বরূপ: আমি সিএসভি ফাইলগুলি 1 রেকর্ডের সাথে পেয়েছি যা লাইনের শুরুতে * (তারকাচিহ্ন) আছে। যখন আমি wc -l fn.csv ইস্যু 0 হিসাবে গণনা করি তবে আদর্শভাবে এটি 1 হওয়া উচিত। * (তারকাচিহ্ন) অন্য ওয়াইল্ডকার্ডগুলির মত সেখানে কোন নির্দিষ্ট জিনিস আছে ??
Devoloper250

আপনি "বিড়াল filename.csv" রান যখন ফলাফল কি কি? এছাড়াও, আপনি কি বন্টন ব্যবহার করছেন?
JNevill

উত্তর:


9

অ-অবসানকৃত লাইন গণনা করা নিশ্চিত করার জন্য একটি কৌশল:

cat filename.csv | xargs -l echo | wc -l

এই সমস্ত অ খালি লাইন গণনা মনে হয়, কিন্তু খালি লাইন skips।

বরং অকার্যকর হয় দয়া করে নোট করুন, কিন্তু সম্ভবত এটি ঘটনাগত ব্যবহারের জন্য একটি সমস্যা নয়।

আরেকটি সম্ভাবনা, অ লাইন শেষ লাইন সহ সমস্ত লাইন গণনা:

awk '{n+=1} END {print n}' filename.csv

RHEL 6.2 এ পরীক্ষিত। YMMV।


দ্য awk কমান্ড কাজ করে ওএস এক্স
Micah Stubbs

1

WC শুধুমাত্র একটি লাইন এবং কোন trailing নতুন লাইন সঙ্গে ফাইল জন্য 0 রিপোর্ট করা হবে। হয়তো আপনার এক রেকর্ড সিএসভি ফাইল এই মত? আপনি hexdump সঙ্গে trailing newlines সন্ধান করতে পারেন, যেমন .:।

hexdump -C fn.csv

শেষে এসিচি কোড 0a দেখুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.