পার্ল 5 এ, আপনি wc -l
অনেলাইনার ব্যবহার করে অনুকরণ করতে পারেন :
perl -lnE 'END {say $.}' test.txt
রাকুর উপর এই কার্যকারিতাটি কীভাবে প্রয়োগ করা যায়
আপনি যদি এটি বাস্তবায়নের চেষ্টা করেন:
raku -e 'say "test.txt".IO.open.lines.elems'
এটি ধীর হয়ে গেছে এবং প্রচুর স্মৃতি ব্যবহার করে
প্রজননের জন্য তথ্য:
$ wget http://eforexcel.com/wp/wp-content/uploads/2017/07/1500000%20Sales%20Records.zip
$ unzip "1500000 Sales Records.zip"
$ mv "1500000 Sales Records.csv" part.txt
$ for i in `seq 1 10`; do cat part.txt >> test.txt ; done
$ du -sh test.txt
1.8G test.txt
$ time wc -l test.txt
15000000 test.txt
real 0m0,350s
user 0m0,143s
sys 0m0,205s
$ time perl -lnE 'END { say $. }' test.txt
15000001
real 0m1,981s
user 0m1,719s
sys 0m0,256s
$ time raku -e 'say "test.txt".IO.open.lines.elems'
15000001
real 2m51,852s
user 0m25,129s
sys 0m6,378s
# Using swap (maximum uses 2.2G swap):
# Before `raku -e ''`
$ free -m
total used free shared buff/cache available
Mem: 15009 1695 12604 107 708 12917
Swap: 7583 0 7583
# After `raku -e ''`
$ free -m
total used free shared buff/cache available
Mem: 15009 752 13923 72 332 13899
Swap: 7583 779 6804
# Swap not used
$ time raku -ne '++$ andthen END .say' test.txt
15000001
real 1m44,906s
user 2m14,165s
sys 0m0,653s
$ raku -v
This is Rakudo version 2019.11 built on MoarVM version 2019.11
implementing Perl 6.d.
raku
) তবে raku -v
আউটপুট রাখা ভাল হবে । এছাড়াও, দয়া করে আমার বর্তমান পরামর্শের সময় আউটপুট যুক্ত বিবেচনা করুন। এছাড়াও, আমি 'ascii'
আরও ভাল সময় তৈরি করতে এই উইকএন্ডের শেষে ডিকোডারের দিকে যেতে চাই ।
-l
পার্লের পতাকাটি পার্লটিকে উল্লেখযোগ্যভাবে ধীর করে দেয় এবং এটি এই ক্ষেত্রে কার্যকর নয়। এলোমেলো লাইন দৈর্ঘ্য এবং প্রায় 200k লাইনযুক্ত ফাইলের জন্য আমার মেশিনে, -l
40% উন্নতিতে ফলাফল সরিয়ে ।
wc
(যার মধ্যে ফাইলের আকার অন্তর্ভুক্ত হওয়া উচিত) যোগ করতে পারেন? ধন্যবাদ.