উত্স ফাইলের শেষে খালি লাইন রাখার সুপারিশ করা হয় কেন?


232

কিছু কোড শৈলী সরঞ্জামগুলি এটির প্রস্তাব দেয় এবং আমি মনে করি কিছু ইউনিক্স কমান্ড লাইন সরঞ্জাম খালি রেখাটি হারিয়ে যাওয়ার বিষয়ে সতর্কতা দেখেছে।

অতিরিক্ত খালি লাইন থাকার যুক্তি কী?


7
ফাইলটি কোনও নতুন লাইনের সাথে শেষ না হলে কিছু সরঞ্জাম কাজ করতে ব্যর্থ হয়। এটি শেষে খালি লাইন থাকার চেয়ে আলাদা (যা 2 টি নতুন লাইন হবে)।
উইলিয়াম পার্সেল

2
আপনার অর্থ ফাঁকা রেখা ( \n\n) বা নতুন লাইন \n?
সিওরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

13
catএকটি শেল ফাইল এবং আপনি কেন জানি হবে। যদি আপনার ফাইলটি আমার শেলের প্রম্পটটিকে এটি হওয়া উচিতের চেয়ে অন্য কোনও জায়গায় উপস্থিত করে তোলে (লাইনের শুরুতে) আমি সম্ভবত আপনাকে ঘৃণা করব। ;)
থিফমাস্টার

2
এই পুরানো প্রশ্নটি এসেছে এবং কেবল বিশ্বাস করা যায় না যে প্রতিটি একক উত্তর অন্য সরঞ্জাম এবং সিস্টেমের ব্যর্থতা এবং ত্রুটিগুলি ন্যায়সঙ্গত করার চেষ্টা করে বলেছে যে আধুনিক কোডারদের এমন একটি চরিত্র যুক্ত করা উচিত যা কোডের নিজস্ব কোনও মূল্য নেই has একটি খাঁচায় 5 বানর সম্পর্কে কথা বলুন! :-D
আমোস এম। কার্পেন্টার

1
উন্নত (আরও সাধারণ) উত্তর সাধারণ :: টেক্সট ফাইল পুনরায় stackoverflow.com/questions/729692/...
রুবেন Bartelink

উত্তর:


188

যদি কোনও পাঠ্য ফাইলের ডেটার শেষ লাইনটি কোনও নতুন লাইন বা ক্যারেজ রিটার্ন / নতুন লাইন সংমিশ্রণ দিয়ে শেষ না করা হয় তবে অনেক পুরানো সরঞ্জাম দুর্ব্যবহার করে। পরিবর্তে ^ Z (eof) দিয়ে সমাপ্ত হওয়ায় তারা সেই লাইনটিকে এড়িয়ে চলে।


1
উত্তর করার জন্য ধন্যবাদ! জনপ্রিয় সরঞ্জামগুলির কোনও উদাহরণ যা এই আচরণটি প্রদর্শন করতে পারে?
নিক মেরিল

8
@ নিকএম প্রায় সমস্ত পোসিক্স / ইউনিক্স কমান্ড-লাইন সরঞ্জামগুলি যা পাঠ্য ইনপুট নেয় বা একটি পাঠ্য ফাইল পড়ে ফাইলের শেষে একটি লাইন সমাপ্ত হয় ( \n) ume বেশ কয়েকটি পাঠ্য সম্পাদক, যেমন ভিম এবং বেশ কয়েকটি সংকলক (উল্লেখযোগ্য সি ++ এবং পাইথন) সতর্কতা জারি করবেন। (সি ++ এর ক্ষেত্রে, স্ট্যান্ডার্ডটির স্পষ্টরূপে এটি প্রয়োজন requires)
গ্রেফ্যাড

5
সুতরাং আপনি যা বলছেন তা হ'ল ... এটি একটি কার্গো
কাল্ট

তবুও আপনি শেষ লাইনে পাঠ্য থাকতে পারেন, প্রশ্নটি একটি খালি রেখার উল্লেখ করে \n\n
jinwee

57

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


38

আপনি যখন কোনও পাঠ্য সম্পাদকের কোনও ফাইলের শেষে যান তখন এটি একটি সুন্দর কার্সার অবস্থান ছাড়াও।

ফাইলটির শেষে একটি নতুন লাইন থাকা একটি সহজ চেক সরবরাহ করে যে ফাইলটি কাটা হয়নি।


221
ফাইলটি কেটে ফেলা হতে পারে এবং আপনি কখনই নাও করতে পারেন
সাইমন নিকারসন

26

ক্লিনার ডিফার্সের জন্য একটি যুক্তিও তৈরি করা যেতে পারে যদি আপনি একই যুক্তিতে নিম্নলিখিত ফাইলটিতে যুক্ত হন তবে কেন একটি তালিকায় ট্র্যাকিং কমা অনুমোদিত?

লিঙ্কযুক্ত সংস্থান থেকে নিম্নলিখিতটি অনুলিপি করা হয়েছে (এবং কিছুটা ছাঁটা হয়েছে):

পরিবর্তন করা হচ্ছে:

s = [
  'manny',
  'jack',
]

প্রতি:

s = [
  'manny',
  'jack',
  'roger',
]

ডিফের মধ্যে কেবল একটি লাইন পরিবর্তন জড়িত:

  s = [
    'manny',
    'jack',
+   'roger',
  ]

যখন পিছনের কমাটি বাদ দেওয়া হয়েছিল তখন এটি আরও বিভ্রান্তিকর বহু-লাইন পার্থক্যকে আঘাত করে:

  s = [
    'manny',
-   'jack'
+   'jack',
+   'roger'
  ]

কেবলমাত্র লিঙ্ক-উত্তরগুলি এসও-তে মূল্যবান বলে বিবেচিত হয় না। অনুগ্রহ বজায় রেখে এখানে সম্পর্কিত তথ্যটি অনুলিপি করুন।
ইশারউড

17

ফাইলের শেষে খালি লাইনটি উপস্থিত হয় যাতে ইনপুট স্ট্রিম থেকে স্ট্যান্ডার্ড পঠন জানতে পারে কখন পড়ার সমাপ্তি হবে, সাধারণত আপনি ইফির শেষে পৌঁছেছেন তা বোঝাতে ইওএফ ফিরিয়ে দেয়। বেশিরভাগ ভাষাগুলি ইওএফ চিহ্নিতকারী পরিচালনা করতে পারে। এটি সেখানে পুরানো দিন থেকেই ডসের অধীনে, ইওএফ চিহ্নিতকারীটি F6 কী বা Ctrl-Z ছিল, * নিক্স সিস্টেমের জন্য এটি ছিল Ctrl-D।

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

পুরানো সরঞ্জামগুলি EOF মার্কার পরে একটি খালি লাইন প্রত্যাশা করেছিল। আজকাল, সরঞ্জামগুলি খালি লাইনটি পরিচালনা করতে পারে এবং এটিকে উপেক্ষা করতে পারে।


6
^ D "ইওএফ চিহ্নিতকারী" ছিল না। ^ ডি টিপে শেলটি অগ্রণী প্রক্রিয়া গ্রুপটি যে পাইপটির পাঠাচ্ছিল তার লিখিত দিকটি বন্ধ করে দেয়, যাতে সেই পাইপ থেকে একটি পঠন ইওএফ ফিরে আসে। কোনও "ইওফ চিহ্নিতকারী" নেই।
উইলিয়াম পার্সেল

@ উইলিয়াম পার্সেল আপনি ভুলভাবে * এনআইএক্স এবং উইন্ডোজকে সঙ্কুচিত করেছেন। লেগ্যাসি উইন্ডোজ / ডস একেবারে একটি ইওএফ চিহ্নিতকারী (26, 0x1 এ) ব্যবহার করেছিল যা বেশিরভাগ ফাইলের শেষে সাধারণত সিপি / এম এর সাথে সামঞ্জস্যের জন্য হোল্ডওভার হিসাবে এম্বেড করা হয় (1983 এর পরে কে হি সিপি / এম ব্যবহার করেছেন?)। অন্যান্য "মজা": এর \r\nপরিবর্তে \nডস ডাক দেয় ASCIIZ এবং ASCII mix এর মিশ্রণ ব্যবহার করে $ আরও খারাপ, পরে উইন্ডোজ সাধারণত বেশিরভাগ পাঠ্য ফাইলের শুরুতে একটি ইউনিকোড বাইট অর্ডার চিহ্ন (বিওএম) .োকায়। সুদৃশ্য "স্বতন্ত্রতা"।

9

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


5

কিছু ভাষা তাদের ইনপুট ফাইলটিকে ইনপুট লাইনের ক্ষেত্রে সংজ্ঞায়িত করে, যেখানে প্রতিটি ইনপুট লাইন একটি ক্যারেজ রিটার্ন দ্বারা সমাপ্ত অক্ষরের একটি সিরিজ। যদি তাদের ব্যাকরণটি এতটাই সংজ্ঞায়িত করা হয়, তবে ফাইলের শেষ বৈধ লাইনটি একটি ক্যারেজ রিটার্ন দ্বারাও শেষ করতে হবে।


3

এটি কোনও পাঠ্য ফাইল কী তা সংজ্ঞার কারণেই। আপনি যখন কোনও ইউনিক্স পরিবেশে একটি নতুন পাঠ্য ফাইল তৈরি করেন, তখন সেই ফাইলটির বিষয়বস্তু হ'ল লাইন অক্ষর '\ n'

এটি ছাড়া ফাইলটি আসলে কোনও পাঠ্য ফাইল হিসাবে চিহ্নিত করা যায় না। এখন একবার আমরা এই পাঠ্য ফাইলে কোড যুক্ত করি, এটি প্রারম্ভিক নতুন লাইনটি সরিয়ে না দেবে যা কোনও পাঠ্য ফাইল নিজেই সংজ্ঞায়িত করে

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