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


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.