लाइन ब्रेक को हटाने के लिए बैश स्क्रिप्ट?


9

मुझे एक स्क्रिप्ट की ज़रूरत है जो एक फ़ाइल को इनपुट करती है और अपनी सामग्री को लाइनब्रेक के साथ हटा देती है - बोलने के लिए "शब्द लिपटे"।

मैंने कोशिश की:

#!/bin/bash
find $HOME '$1' | while read line; do echo "${line}"; done

लेकिन यह सिर्फ कुछ भी नहीं लौटाता है।

जवाबों:


18

ऐसा करने का प्रयास करें:

echo $(cat $1)

1
खुशी है कि मैं आपको एक-से-कई-कई तरीके ढूंढने में मदद कर सकता हूं, लेकिन अगली बार थोड़ा और Googling करके देखें। यह एक दूसरे परिणाम कीवर्ड का उपयोग कर ऊपर पॉपिंग के रूप में मैं क्या मिल गया है bash, line, end, remove
gertvdijk

@gertvdijk साल बीत चुके हैं, और यह सवाल वही है जो मुझे पहले परिणाम के रूप में मिला है जो अब इसी तरह के कीवर्ड का उपयोग कर पॉप अप कर रहा है :)
जॉर्ज सुआरेज़ डे लिस

गैर-स्क्रिप्ट / cmdline तरीका हैecho `cat some_file.ext`
nmz787

7

मुझे स्टैकओवरफ्लो में यह प्रासंगिक उत्तर मिला:

/programming/1251999/sed-how-can-i-replace-a-newline-n

सबसे तेज़ तरीका tr का उपयोग करता हुआ प्रतीत होता है:

tr '\n' ' ' </your/file

या आपके उदाहरण के लिए:

cat `find $HOME '$1"` | tr '\n' ' '

trआदेश के बारे में अधिक जानने के लिए, निश्चित रूप से man tr,।

स्टैकओवरफ़्लोअर एसेर में सीड के साथ ऐसा करने के तरीके शामिल हैं (मेरी पहली पसंद होगी, लेकिन सेड बहुत लाइन-ओरिएंटेड है और इसे फील्ड ब्रेक के रूप में लाइन ब्रेक की व्याख्या नहीं करना है) प्रारंभिक दृष्टिकोण।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.