अंतिम को छोड़कर सभी नई लाइनों को अंतरिक्ष में बदलें


38

मैं अंतिम न्यूलाइन को छोड़कर सभी नई लाइनों को अंतरिक्ष से कैसे बदल सकता हूं। मैं सभी न्यूलाइन को स्पेस का उपयोग करके बदल सकता हूं trलेकिन मैं इसे कुछ अपवादों के साथ कैसे कर सकता हूं?

जवाबों:


42

आप उपयोग कर सकते हैं paste -s -d ' ' file.txt:

$ cat file.txt
one line
another line
third line
fourth line

$ paste -s -d ' ' file.txt 
one line another line third line fourth line

1
ठंडा! -sऔर -dविकल्प इस मामले के लिए बनाया की तरह लग रहे हैं।
22

10

आप trअंतरिक्ष में जाने के लिए सभी newlines को बदलने के लिए उपयोग कर सकते हैं और आउटपुट को sedअंतिम स्थान पर बदलने के लिए वापस एक नई पंक्ति में ले जा सकते हैं:

tr '\n' ' ' < afile.txt | sed '$s/ $/\n/'



-1

इसने मेरे लिए काम किया।

tr '\n' ' ' < file_with_new_line   | sed 's/\ $//g' > file_with_space

वह अंतिम नई पंक्ति को भी हटा देगा।
terdon

मुझे ऐसा नहीं लगता, यह ठीक काम कर रहा है। क्या आपने सच में इसे आजमाया है ???
अभिजीत

हाँ मेरे पास है। क्या तुम? आपकी trकमांड सभी नई जगहों को स्थान से बदल देती है और आपकी sedकमांड अंतिम स्थान को हटा देती है। यह एक अंतिम newline के बिना एक फ़ाइल में परिणाम है और इसलिए वह नहीं है जो सवाल पूछ रहा है। वैसे, कमांड gमें उपयोग करने के लिए कोई बिंदु इंट नहीं है sed। चूंकि आप उपयोग कर रहे हैं $, यह केवल अंत में मेल कर सकता है, gव्यर्थ है। तुम भी अंतरिक्ष से बचने की जरूरत नहीं है, `` कोई फर्क नहीं पड़ता।
terdon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.