मैं sedकाफी समय से उपयोग कर रहा हूं, लेकिन यहां एक विचित्रता है जिसके साथ मैं आया था, जिसे मैं हल नहीं कर पा रहा हूं।
मुझे वास्तविक मामले के साथ अपनी समस्या बताएं।
दृश्य 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
पहले कमांड में, मैं printfआउटपुट को पाइप करता हूं xclipताकि यह क्लिपबोर्ड पर कॉपी हो जाए। अब, printfइसके विपरीत, echoडिफ़ॉल्ट रूप से एक नई पंक्ति अंत में सम्मिलित नहीं होती है। इसलिए, यदि मैं इस सामग्री को टर्मिनल में पेस्ट करता हूं, तो जो lsकमांड कॉपी की जाती है वह स्वचालित रूप से नहीं चलती है।
दूसरे में, अंत में एक नई रेखा होती है, इसलिए क्लिपबोर्ड सामग्री को चिपकाने से क्लिपबोर्ड में कमांड के चलने का भी परिणाम होता है।
यह मेरे लिए अवांछनीय है। इसलिए, मैं उपयोग करते हुए नई लाइन को हटाना चाहता था sed, लेकिन यह विफल रहा, जैसा कि नीचे दिए गए दृश्य में बताया गया है।
दृश्य # 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
क्लिपबोर्ड की सामग्री में अभी भी नई-पंक्ति है। जब मैं इसे टर्मिनल में पेस्ट करता हूं, तो कमांड अपने आप चलती है।
मैंने गाड़ी वापसी चरित्र को हटाने की भी कोशिश की \r। लेकिन नाडा। ऐसा लगता है कि मैं यहाँ कुछ बहुत ही महत्वपूर्ण / बुनियादी याद कर रहा हूँ।
generate-text | xclipमामले में वांछनीय नहीं । यह उत्तर केवल अंतिम नई पंक्ति को निकालता है।