किसी फ़ाइल की सामग्री को नई पंक्ति वर्ण वाली स्ट्रिंग के साथ कैसे बदलें? लिनक्स, बैश, खोल, स्क्रिप्टिंग

जब मैं एक स्ट्रिंग में "line1nline2nline3" पढ़ता हूं, इस तरह:

read string

line1nline2nline3

फिर स्ट्रिंग को गूंजें और आउटपुट को फ़ाइल में निर्देशित करें:

echo $string > text.txt

अब txt फ़ाइल में शामिल हैं:

line1nline2nline3

मैं इसे कैसे बना सकता हूं ताकि फ़ाइल में शामिल हो:

line1
line2
line2

?

धन्यवाद।

उत्तर:

जवाब के लिए 2 № 1

यहां समस्या यह है कि n इसका मतलब लाइन फीड नहीं है। यह सिर्फ अनावश्यक रूप से मूल्य से बच रहा है n

जो भी आप चाहते हैं उसे करने के लिए, आपको चाहिए।

  1. एक स्ट्रिंग को इस तरह से पढ़ें जो बैकस्लाश को सुरक्षित रखता है
  2. किसी भी भागने के दृश्यों का विस्तार करें और स्ट्रिंग आउट लिखें

आप कर सकते हैं 1. के साथ read -r और 2. के साथ echo -e:

read -r string
echo -e "$string"

जवाब के लिए 0 № 2

रख दो $string डबल कोट्स में:

echo "$string" > text.txt

जवाब के लिए 0 № 3

आपको डबल-कोट्स जोड़ने की ज़रूरत है।

उदाहरण:

$ example=line1nline2
$ echo $example
line1nline2

डबल कोट्स के साथ:

$ example="line1nline2"
$ echo $example
line1
line2

सहेजा जा रहा है:

$ echo $example >> example.txt
$ cat example.txt
line1
line2

संबंधित सवाल
सबसे लोकप्रिय