क्यों एक उप-पंक्ति को उद्धृत करने और परिणाम प्रतिध्वनित करने के अंत में एक नई रेखा नहीं है?


9

जब मैं ls | grep pnggrep का आउटपुट करता हूं :

2015-05-15-200203_1920x1080_scrot.png 
2015-05-16-025536_1920x1080_scrot.png

(फ़ाइल नाम, न्यू लाइन, फ़ाइल नाम, न्यू लाइन)

तब, echo $(ls | grep png)आउटपुट:

2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png

(फ़ाइल नाम, शब्द विभाजन से स्थान, फ़ाइल नाम, न्यूलाइन !! गूंज से !!)

यह सब ठीक है, लेकिन जब मैं शब्द विभाजन को रोकने के लिए ऐसा करता हूं: echo "$(ls | grep png)"आउटपुट है:

2015-05-15-200203_1920x1080_scrot.png 
2015-05-16-025536_1920x1080_scrot.png

और मेरा सवाल यह है कि दूसरी न्यूलाइन (एक grep से और एक इको से कहां होनी चाहिए) है?

जवाबों:


8

यह नई पंक्ति है echo, आप echo -nअनुगामी न्यूलाइन को दबाने के लिए उपयोग करके सत्यापित कर सकते हैं :

echo -n "$(ls | grep png)"

कमांड प्रतिस्थापन सभी अनुगामी न्यूलाइन्स को हटाते हैं, अंतिम न्यूलाइन द्वारा जोड़ा गया था echo, grepयहां कुछ भी नहीं है।


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