আমি কীভাবে ব্যাশ / সেড স্ক্রিপ্ট ব্যবহার করে কোনও পাঠ্য ফাইলের প্রথম লাইনটি সরিয়ে ফেলতে পারি?


554

আমার বার বার ব্যাশ স্ক্রিপ্ট ব্যবহার করে বিশাল টেক্সট ফাইল থেকে প্রথম লাইনটি সরিয়ে ফেলতে হবে।

এখনই আমি ব্যবহার করছি sed -i -e "1d" $FILE- তবে মুছে ফেলতে এটি প্রায় এক মিনিট সময় নেয়।

এটি সম্পাদন করার আরও কার্যকর উপায় আছে?


আমি কি জন্য দাঁড়ানো?
সিকাতোমো

4
@ আইক্যাটোমো: এটি ইনলাইন সম্পাদনার জন্য দাঁড়িয়েছে - এটি আপনার যা কিছু উত্পন্ন করে তা ফাইল সম্পাদনা করে।
ড্রভরশার্ড

4
লেজ সিডের চেয়ে অনেক বেশি স্লোয়ার। লেজের 13.5s প্রয়োজন, সেডের 0.85 এস প্রয়োজন। আমার ফাইলে M 1M লাইন রয়েছে, ~ 100MB। ম্যাকবুক এয়ার 2013 এসএসডি সহ।
জ্যাকসাহ্নওয়াল্ড্ট GoFundMonica

উত্তর:


1029

লেজ চেষ্টা করুন :

tail -n +2 "$FILE"

-n x: শুধু শেষ xলাইনগুলি মুদ্রণ করুন । tail -n 5আপনাকে ইনপুটটির শেষ 5 লাইন দেবে। +Inverts চিহ্ন ধরনের যুক্তি করুন এবং tailমুদ্রণ কিছু কিন্তু প্রথম x-1লাইন। tail -n +1পুরো ফাইলটি, tail -n +2প্রথম লাইন বাদে সবকিছু মুদ্রণ করবে etc.

জিএনইউ এর tailচেয়ে অনেক দ্রুত sedtailBSD এও উপলব্ধ এবং -n +2পতাকা উভয় সরঞ্জাম জুড়েই সামঞ্জস্যপূর্ণ। আরও জন্য ফ্রিবিএসডি বা ওএস এক্স ম্যান পৃষ্ঠাগুলি পরীক্ষা করুন।

বিএসডি সংস্করণ sedযদিও এর চেয়ে অনেক ধীর হতে পারে । আমি অবাক হয়েছি তারা কীভাবে এটি পরিচালনা করেছিল; কোনও স্ক্রিপ্টের ব্যাখ্যা, নিয়মিত অভিব্যক্তি এবং এর মতো প্রয়োগ করে জড়িত বেশ জটিল ক্রিয়াকলাপ করার tailসময় কেবল একটি লাইনের সাথে একটি ফাইল লাইন পড়তে হবে sed

দ্রষ্টব্য: আপনি ব্যবহার করতে প্ররোচিত হতে পারে

# THIS WILL GIVE YOU AN EMPTY FILE!
tail -n +2 "$FILE" > "$FILE"

তবে এটি আপনাকে একটি খালি ফাইল দেবে । কারণটি হ'ল পুনঃনির্দেশ ( >) এর আগে tailশেলটি চালিত হওয়ার আগে ঘটে :

  1. শেল ফাইল কেটে যায় $FILE
  2. শেল এর জন্য একটি নতুন প্রক্রিয়া তৈরি করে tail
  3. শেল tailপ্রক্রিয়াটির stdout এ পুনঃনির্দেশ করে$FILE
  4. tail এখন থেকে খালি পড়ে $FILE

আপনি যদি ফাইলের মধ্যে প্রথম লাইনটি সরাতে চান তবে আপনার ব্যবহার করা উচিত:

tail -n +2 "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE"

&&নিশ্চিত করুন যে ফাইলটি overwrite পাবেন না যখন একটি সমস্যা আছে করতে হবে।


3
এই ss64.com/bash/tail.html অনুসারে -rবিকল্পের সাথে BSD 'লেজ' ব্যবহার করার সময় 32k এর মধ্যে সাধারণত বাফারটি ডিফল্ট হয় । সম্ভবত সিস্টেমের কোথাও একটি বাফার সেটিং আছে? বা -n32-বিট স্বাক্ষরিত নম্বর?
ইজমির রামিরেজ

41
@ এডি: ব্যবহারকারী 869097 বলেছেন যে কোনও একক লাইন 15 এমবি বা তার বেশি হলে এটি কাজ করে না । যতক্ষণ না লাইনগুলি ছোট হয়, tailকোনও ফাইল আকারের জন্য কাজ করবে।
অ্যারোন দিগুল্লা

6
আপনি এই যুক্তি ব্যাখ্যা করতে পারেন?
ড্রিম্পুফ

17
@ ড্রাম্পুফ - ম্যান পেজ থেকে:-n N means output the last N lines, instead of the last 10; or use +N to output lines starting with the Nth
শেপার্ড উইল শ্যাপার্ড

11
আমি @ জোনাক্রিস্টোফারসাহনওয়াল্ড্টের সাথে একমত হতে যাচ্ছিলাম - প্রস্থের ক্রম অনুসারে লেজটি অনেকটা ধীরে ধীরে সেড বৈকল্পিকের চেয়ে ধীর। আমি এটি 500,000 কে লাইনের ফাইলের (এটি প্রতি লাইনে 50 টির বেশি নয়) পরীক্ষা করছি। তবে আমি তখন বুঝতে পেরেছিলাম যে আমি লেজের ফ্রিবিএসডি সংস্করণটি ব্যবহার করছি (যা ডিফল্টরূপে ওএস এক্সের সাথে আসে)। আমি যখন জিএনইউ লেজে স্যুইচ করেছি, লেজ কলটি সেড কলের চেয়ে 10 গুণ বেশি দ্রুত ছিল (এবং জিএনইউ সেড কলও খুব বেশি)। যদি আপনি জিএনইউ ব্যবহার করেন তবে অ্যারোনডিগুল্লা এখানে সঠিক।
ড্যান এনগুইন

179

'>' অপারেটর ব্যবহার না করেই আপনি ফাইল আপডেট করতে -i ব্যবহার করতে পারেন। নিম্নলিখিত কমান্ডটি ফাইলটি থেকে প্রথম লাইনটি মুছবে এবং এটিকে ফাইলটিতে সংরক্ষণ করবে।

sed -i '1d' filename

1
আমি ত্রুটি পেয়েছি:unterminated transform source string
ড্যানিয়েল কোবে

10
এটি প্রতিটি সময় কাজ করে এবং সত্যই শীর্ষ উত্তর হওয়া উচিত!
পাঠ্য

4
কেবল মনে রাখতেই, ইন-প্লেস সম্পাদনাগুলি ব্যবহার করে ম্যাকের একটি প্রত্যয় সরবরাহ করা প্রয়োজন। তাই সঙ্গে -i.bak উপরে চালানো
mjp

3
কেবল একটি নোট - কয়েকটি লাইন ব্যবহারের জন্য মুছে ফেলতেsed -i '1,2d' filename
গডফাদাররা

4
এই সংস্করণ সত্যিই অনেক বেশি পাঠযোগ্য এবং আরো অনেক কিছু সার্বজনীন, চেয়ে tail -n +2। কেন এটি শীর্ষ উত্তর নয় তা নিশ্চিত নন।
লুক ডেভিস

74

যারা সুনোস-এ রয়েছেন যা নন-জিএনইউ, তাদের জন্য নিম্নলিখিত কোডটি সহায়তা করবে:

sed '1d' test.dat > tmp.dat 

18
আকর্ষণীয় ডেমোগ্রাফিক
অধিনায়ক

17

না, এটি আপনি যতটা দক্ষ পাবেন তা প্রায় দক্ষ। আপনি একটি সি প্রোগ্রাম লিখতে পারেন যা কাজটি আরও দ্রুত করতে পারে (কম শুরুর সময় এবং প্রক্রিয়া যুক্তিগুলি কম) তবে এটি সম্ভবত ফাইলগুলি বড় হওয়ার সাথে সাথে একই গতির দিকে ঝুঁকবে (এবং আমি ধরে নিচ্ছি যে এটি এক মিনিট সময় নিলে তারা বড় হবে) )।

তবে আপনার প্রশ্নটি অন্য অনেকের মতো একই সমস্যায় ভুগছে যা সমাধানটির পূর্ব-ধারণা দেয়। আপনি যদি আমাদের কীভাবে চেষ্টা করার চেষ্টা করছেন তবে আমাদের কীভাবে তা বিশদে জানাতে হয় , আমরা আরও ভাল বিকল্পের পরামর্শ দিতে সক্ষম হতে পারি।

উদাহরণস্বরূপ, যদি এটি একটি ফাইল এ হয় যা কিছু অন্যান্য প্রোগ্রাম বি প্রসেস করে তবে একটি সমাধান হ'ল প্রথম লাইনটি সরিয়ে না ফেলা হবে, তবে প্রোগ্রাম বিটিকে অন্যভাবে প্রক্রিয়া করার জন্য এটি পরিবর্তন করতে হবে।

ধরা যাক আপনার সমস্ত প্রোগ্রাম এ ফাইলটিতে যুক্ত হয় এবং প্রোগ্রাম বি বর্তমানে এটি মুছার আগে প্রথম লাইনটি পড়ে এবং প্রক্রিয়া করে।

আপনি প্রোগ্রাম বি পুনরায় ইঞ্জিনিয়ার করতে পারেন যাতে এটি প্রথম লাইনটি মোছার চেষ্টা না করে তবে একটি অবিচ্ছিন্ন (সম্ভবত ফাইল-ভিত্তিক) ফাইল এ-তে অফসেট বজায় রাখে যাতে পরের বার এটি চালিত হয়, এটি সেই অফসেট, প্রক্রিয়াটি সন্ধান করতে পারে সেখানে লাইন, এবং অফসেট আপডেট করুন।

তারপরে, একটি শান্ত সময়ে (মধ্যরাত?), এটি বর্তমানে প্রক্রিয়া করা সমস্ত লাইন মুছে ফেলতে এবং অফসেটটি 0-এ সেট করতে ফাইল এ এর ​​বিশেষ প্রসেসিং করতে পারে।

কোনও প্রোগ্রাম খোলার ও পুনর্লিখনের পরিবর্তে কোনও ফাইল খোলার এবং অনুসন্ধান করা অবশ্যই তত দ্রুত হবে। এই আলোচনাটি অবশ্যই ধরে নিয়েছে যে আপনার অবশ্যই বি প্রোগ্রামের নিয়ন্ত্রণ রয়েছে। আমি জানি না এটি কেস কিনা তবে আপনি যদি আরও তথ্য সরবরাহ করেন তবে অন্যান্য সম্ভাব্য সমাধানও থাকতে পারে।


আমি মনে করি যে ওপি আমাকে এই প্রশ্নটি সন্ধান করার জন্য কী অর্জন করার চেষ্টা করছে। আমার প্রতিটিতে 500 কে লাইন সহ 10 টি সিএসভি ফাইল রয়েছে। প্রতিটি ফাইলের প্রথম লাইনের মতো শিরোনাম সারি থাকে। আমি বিড়াল: এই ফাইলগুলিকে একটি ফাইলে যুক্ত করে তারপরে একটি ডিবিতে আমদানি করে ডিবিকে প্রথম লাইন থেকে কলামের নাম তৈরি করতে দেওয়া। স্পষ্টতই আমি এই লাইনটি 2-10 ফাইলটিতে পুনরাবৃত্তি করতে চাই না।
ডিবি

1
@db এই ক্ষেত্রে, awk FNR-1 *.csvসম্ভবত দ্রুত।
jinwee

10

আপনি জায়গাগুলিতে ফাইলগুলি সম্পাদনা করতে পারেন : পার্লের -iপতাকা ব্যবহার করুন, এটির মতো:

perl -ni -e 'print unless $. == 1' filename.txt

এটি আপনাকে বলার সাথে সাথে প্রথম লাইনটি অদৃশ্য করে দেয়। পার্লকে পুরো ফাইলটি পড়তে এবং অনুলিপি করতে হবে তবে এটি আউটপুটটিকে মূল ফাইলের নামে সংরক্ষণ করার ব্যবস্থা করে।


10

আপনি এটি সহ সহজেই এটি করতে পারেন:

cat filename | sed 1d > filename_without_first_line

কমান্ড লাইনে; বা স্থায়ীভাবে কোনও ফাইলের প্রথম লাইনটি সরাতে -iপতাকাটির সাথে শেডের ইন-প্লেস মোড ব্যবহার করুন :

sed -i 1d <filename>

9

প্যাকস যেমন বলেছিল, সম্ভবত আপনি এর চেয়ে দ্রুত আর পাবেন না। কারণটি হ'ল প্রায় কোনও ফাইলসিস্টেম নেই যা ফাইলের শুরু থেকে ছাঁটাইকে সমর্থন করে তাই এটি একটি ও ( n) অপারেশন হতে চলেছে যেখানে nফাইলের আকার রয়েছে। আপনি যেটি আরও দ্রুত করতে পারবেন তা হ'ল একই লাইনের বাইটগুলির সাথে প্রথম লাইনটি ওভাররাইট করে (সম্ভবত স্পেস বা কোনও মন্তব্য সহ) যা আপনার পক্ষে ঠিক কী করার চেষ্টা করছেন তার উপর নির্ভর করে (উপায়টি এটি কী?)


পুনরায় "... কাটানো সমর্থন করে এমন কোনও ফাইল সিস্টেম নেই ..." : এটি আকর্ষণীয়; দয়া করে এ জাতীয় ফাইল সিস্টেমের নামকরণকারী প্যারেন্টেথিকাল নোট সহ বিবেচনা করুন।
এজিসি

1
@ এগসি: এখন অপ্রাসঙ্গিক তবে 70 এর দশকে আমার প্রথম কাজটি ছিল কোয়েডেক্সের সাথে, একটি ছোট্ট সূচনা (এখন চলে গেছে, এবং এখন এই নামটি ব্যবহার করে দুটি সংস্থার সাথে সম্পর্কিত নয়)। তাদের একটি ফাইল সিস্টেম ছিল যা কোনও ফাইলের শুরু বা শেষের দিকে যোগ বা অপসারণের অনুমতি দেয় , বেশিরভাগ ক্ষেত্রে ফাইলগুলিতে উপরের উইন্ডো এবং নীচে উইন্ডো রেখে 3KB এর চেয়ে কম সম্পাদনা সম্পাদন করতে ব্যবহৃত হত। এটির নিজস্ব কোনও নাম ছিল না, এটি কিউএমএক্স, কোয়েডেক্স মাল্টিউজার অপারেটিং সিস্টেমের একটি অংশ ছিল। ('মাল্টি' সাধারণত একটি এলএসআই -11 / 02-তে কম ছিল was৪ কেবি র‌্যামের সাথে এবং সাধারণত প্রতি কয়েকটি 250 কেবিতে কয়েকটি RX01-টাইপ 8 "ফ্লপি ডিস্ক থাকে)) :-)
dave_thompson_085

9

spongeUtil একটি টেম্প ফাইল juggling প্রয়োজনীয়তার এড়াতে:

tail -n +2 "$FILE" | sponge "$FILE"

spongeপ্রকৃতপক্ষে অনেক পরিষ্কার এবং গৃহীত সমাধান চেয়ে বেশি জোরালো হয় ( tail -n +2 "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE")
Jealie

1
এটি স্পষ্ট করে দেওয়া উচিত যে 'স্পঞ্জ'-এর জন্য' মোর্যুটিলস 'প্যাকেজ ইনস্টল করা প্রয়োজন।
ফেডফ্র্যাঞ্জনি 22'18 '

এটিই একমাত্র সমাধান যা আমার জন্য একটি সিস্টেম ফাইল পরিবর্তন করতে কাজ করেছিল (একটি ডেবিয়ান ডকার ইমেজে)। ফাইলটি লেখার চেষ্টা করার সময় "ডিভাইস বা রিসোর্স ব্যস্ত" ত্রুটির কারণে অন্যান্য সমাধান ব্যর্থ হয়েছে।
ফেডফ্র্যাঞ্জনি 22'18 '

কিন্তু spongeমেমরিতে পুরো ফাইলটি বাফার করে? এটি শত শত জিবি হলে কাজ করবে না।
অরেঞ্জডগ

@ ওরেঞ্জডগ, যতক্ষণ না ফাইল সিস্টেম এটি সঞ্চয় করতে পারে, এটি spongeভিজিয়ে রাখবে, যেহেতু এটি একটি / টিএমপি ফাইলকে মধ্যবর্তী পদক্ষেপ হিসাবে ব্যবহার করে, যা মূলটি পরবর্তীকালে প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
এগ্রি

8

আপনি যদি জায়গায় জায়গায় ফাইলটি সংশোধন করতে চান তবে আপনি সর্বদা এর ট্রামিং উত্তরাধিকারীর edপরিবর্তে মূলটি ব্যবহার করতে পারেন :sed

ed "$FILE" <<<$'1d\nwq\n'

edকমান্ড, মূল ইউনিক্স টেক্সট সম্পাদক ছিলেন সামনে এমনকি পূর্ণ স্ক্রীন টার্মিনাল ছিল অনেক কম গ্রাফিকাল ওয়ার্কস্টেশনের। exসম্পাদক সেরা আপনি ব্যবহার করছেন যখন টাইপিং কোলন প্রম্পট এ নামে পরিচিত vi, একটি হল প্রাক্তন এর সেদিকেই ঝুঁকেছে সংস্করণ ed, একই কমান্ড কাজ অনেক। যদিও edইন্টারেক্টিভ ব্যবহার করা যেতে বোঝানো হয়, এটি যা কি এই সমাধান আছে, এটা তে আদেশগুলি একটি স্ট্রিং পাঠিয়ে ব্যাচ মোডে ব্যবহার করা যাবে।

ক্রম <<<$'1d\nwq\n'সুবিধা ব্যাশ এর সমর্থন এখানে-স্ট্রিং (জন্য লাগে <<<) এবং POSIX উদ্ধৃতি ( $'... 'ফিড ইনপুট করার জন্য) ed: দুই লাইন গঠিত কমান্ড 1d, যা eletes লাইন 1 , এবং তারপর wq, যা W শেষকৃত্য ফাইল ফিরে আউট ডিস্ক এবং তারপরে কিউ সম্পাদনা সেশনটি সরিয়ে দেয়।


এটি মার্জিত। +1
আর্মিন

তবে আপনাকে পুরো ফাইলটি মেমোরিতে পড়তে হবে, এটি শত শত জিবি হলে কার্যকর হবে না।
অরেঞ্জডগ

5

প্রথম লাইন বাদে লাইনগুলি প্রদর্শন করা উচিত:

cat textfile.txt | tail -n +2

4
- আপনি চিৎকার করে "টেল-এন +২ টেক্সটফিল.টিেক্সট" করেন
নিগলেসিয়াস

5
@ নিগলেসিয়াস আমি "বিড়ালের অকেজো ব্যবহার" এর সাথে একমত নই, কারণ এটি স্পষ্ট করে দিয়েছে যে এই সমাধানটি পাইপযুক্ত সামগ্রীতে ঠিক আছে এবং কেবল ফাইলই নয়।
তিতো

5

এটি করতে ভিম ব্যবহার করতে পারে:

vim -u NONE +'1d' +'wq!' /tmp/test.txt

এটি দ্রুত হওয়া উচিত, যেহেতু প্রক্রিয়া চলাকালীন ভিআইএম পুরো ফাইলটি পড়বে না।


+wq!আপনার শেলটি বাশ হলে উদ্ধৃতি দেওয়ার প্রয়োজন হতে পারে । সম্ভবত যেহেতু !কোনও শব্দের শুরুতে নয়, তবে জিনিস উদ্ধৃত করার অভ্যাসটি পাওয়া সম্ভবত চারদিকে ভাল good (এবং যদি আপনি অকারণে উদ্ধৃতি না দিয়ে অতি দক্ষতার জন্য যাচ্ছেন তবে আপনার 1dউভয়ের চারপাশের উদ্ধৃতিগুলির দরকার নেই ))
মার্ক রিড 18

vim পুরো ফাইলটি পড়ার দরকার নেই । প্রকৃতপক্ষে যদি ফাইলটি মেমরির চেয়ে বড় হয়, যেমন এই প্রশ্নটিতে জিজ্ঞাসা করা হয়েছে, ভিম পুরো ফাইলটি পড়ে এবং এটি (বা এর বেশিরভাগ) কোনও অস্থায়ী ফাইলে লেখেন, এবং সম্পাদনা করার পরে এটি সমস্ত ফিরে (স্থায়ী ফাইলটিতে) লিখে দেয়। আমি জানি না আপনি কীভাবে মনে করেন এটি ছাড়া এটি সম্ভবত কীভাবে কাজ করতে পারে ।
dave_thompson_085

4

সিএসপি্লিট ব্যবহার সম্পর্কে কীভাবে?

man csplit
csplit -k file 1 '{1}'

এই সিনট্যাক্স এছাড়াও কাজগুলি, কিন্তু কেবলমাত্র তিনটি পরিবর্তে দুই আউটপুট ফাইল উৎপন্ন হবে: csplit file /^.*$/1। বা আরো সহজভাবে: csplit file //1। নাকি তার চেয়েও কেবল: csplit file 2
মার্কো রায়

1

যেহেতু মনে হচ্ছে আমি মুছে ফেলার গতি বাড়িয়ে তুলতে পারছি না, তাই আমার মনে হয় এই জাতীয় ব্যাচগুলিতে ফাইলটি প্রক্রিয়া করার জন্য একটি ভাল পদ্ধতির হতে পারে:

While file1 not empty
  file2 = head -n1000 file1
  process file2
  sed -i -e "1000d" file1
end

এর অসুবিধাটি হ'ল যদি প্রোগ্রামটি মাঝখানে মারা যায় (বা যদি সেখানে কিছু খারাপ স্কিল থাকে - "প্রক্রিয়া" অংশটি মারা যায় বা লক-আপ হয়) তবে এমন লাইন থাকবে যা হয় এড়িয়ে যায়, বা দু'বার প্রক্রিয়াজাত হয় ।

(ফাইল 1 এ এসকিএল কোডের লাইন রয়েছে)


প্রথম লাইনে কী রয়েছে? আমার পোস্টে যেমন পরামর্শ দেওয়া হয়েছে আপনি কি কেবল এটি একটি বর্ধিত মন্তব্য দিয়ে ওভাররাইট করতে পারেন?
রবার্ট গাম্বল

0

আপনি যা করতে যাচ্ছেন তা যদি ব্যর্থতার পরে পুনরুদ্ধার হয় তবে আপনি এখন পর্যন্ত এমন একটি ফাইল তৈরি করতে পারেন যা আপনি এখনও করেছেন।

if [[ -f $tmpf ]] ; then
    rm -f $tmpf
fi
cat $srcf |
    while read line ; do
        # process line
        echo "$line" >> $tmpf
    done

0

এই এক লাইনারটি করবে:

echo "$(tail -n +2 "$FILE")" > "$FILE"

এটি কাজ করে, যেহেতু tailআগে সম্পাদিত হয় echoএবং তারপরে ফাইলটি আনলক করা হয়, তাই কোনও টেম্প ফাইলের প্রয়োজন হয় না।


-1

এন -1 লাইনগুলিতে লেজ ব্যবহার করে এবং কোনও ফাইলের মধ্যে নির্দেশনা দেওয়া, তারপরে পুরানো ফাইলটি সরিয়ে, এবং নতুন ফাইলটির নাম পুরানো নাম রেখে নামকরণ কী কাজ করবে?

যদি আমি এই প্রোগ্রামটিমেটিকভাবে করছিলাম তবে আমি ফাইলটি পড়তাম এবং প্রতিটি লাইন পড়ার পরে ফাইলটি অফসেটের কথা মনে রাখতাম, যাতে আমি এর মধ্যে আরও কম লাইন রেখে ফাইলটি পড়তে সেই অবস্থানে ফিরে যেতে পারি।


প্রথম সমাধানটি মূলত ব্রেন্টের এখন একইরকম। আমি আপনার প্রোগ্রাম্যাটিক পদ্ধতিটি বুঝতে পারছি না, কেবল প্রথম লাইনটি মুছতে হবে, আপনি কেবল প্রথম লাইনটি পড়বেন এবং বাতিল করবেন এবং বাকীটি অন্য ফাইলটিতে অনুলিপি করবেন যা আবার সেড এবং লেজের পদ্ধতির মতো।
রবার্ট গাম্বল

দ্বিতীয় সমাধানটিতে বোঝা যায় যে প্রতিবার প্রথম লাইনে ফাইল সঙ্কুচিত হয় না। প্রোগ্রামটি সহজভাবে এটি প্রক্রিয়া করে, যেন এটি সঙ্কুচিত হয়ে গেছে তবে প্রতিবারের পরের লাইনে শুরু হচ্ছে
এভিলটিচ

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