मेरे पास ऐसी फाइलें हैं जो एक या एक से अधिक न्यूलाइन्स में समाप्त होती हैं और केवल एक न्यूलाइन में समाप्त होनी चाहिए। मैं बैश / यूनिक्स / जीएनयू टूल के साथ कैसे कर सकता हूं?
उदाहरण खराब फ़ाइल:
1\n
\n
2\n
\n
\n
3\n
\n
\n
\n
उदाहरण के लिए सही फ़ाइल:
1\n
\n
2\n
\n
\n
3\n
दूसरे शब्दों में: ईओएफ और फ़ाइल के अंतिम गैर-न्यूलाइन चरित्र के बीच एक नई रूपरेखा होनी चाहिए।
संदर्भ कार्यान्वयन
फ़ाइल सामग्री पढ़ें, एक नई पंक्ति को तब तक काटें जब तक कि आगे की दो नई पंक्तियाँ न हों, इसे वापस लिखें:
#! /bin/python
import sys
with open(sys.argv[1]) as infile:
lines = infile.read()
while lines.endswith("\n\n"):
lines = lines[:-1]
with open(sys.argv[2], 'w') as outfile:
for line in lines:
outfile.write(line)
स्पष्टीकरण: निश्चित रूप से, पाइपिंग की अनुमति है, अगर वह अधिक सुरुचिपूर्ण है।