मुझे बताया गया है कि यह संभव था, लेकिन एक एकल कार्यशील उदाहरण के sed
बिना, एक इनपुट फ़ाइल की आवश्यकता के बिना एक स्ट्रिंग चर से पढ़ा जा सकता है। मेरे पास इसे काम करने के लिए अभी तक नहीं है। सामान्य सुरक्षा के लिए, मैं $PATH
चर को दूसरे चर में लिख रहा हूं , क्योंकि मैं इसके साथ गड़बड़ करता हूं, क्योंकि मुझे अन्य समस्याओं की आवश्यकता नहीं है जब तक कि मुझे पता नहीं है कि यह कैसे करना है।
निम्नलिखित को धयान मे रखते हुए:
~$x=$PATH
~$sed -i 's/:/ /g' $x
इसके साथ विफल रहता है: ऐसी कोई फ़ाइल या निर्देशिका नहीं।
यहाँ कुछ अन्य हैं जिन्हें मैंने आज़माया है:
~$ sed -i 's/:/ /g' | (read x)
sed: no input files
~$ sed -i 's/:/ /g' | (read $x)
bash: read: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier
sed: no input files
~$ sed -i 's/:/ /g' | $(read x)
sed: no input files
~$ sed -i 's/:/ /g' | $(read $x)
bash: read: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier
sed: no input files
~$ sed -i 's/:/ /g' < $(read $x)
bash: read: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier
bash: $(read $x): ambiguous redirect
~$ sed -i 's/:/ /g' < read $x
bash: read: No such file or directory
~$ sed -i 's/:/ /g' < (read x)
bash: syntax error near unexpected token `('
~$ sed -i 's/:/ /g' < $((read x))
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: syntax error: operand expected (error token is "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games")
~$ sed -i 's/:/ /g' < $((read $x))
bash: read /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: division by 0 (error token is "usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games")
~$ sed -i 's/:/ /g' << $((read $x))
> ;^C
~$ sed -i 's/:/ /g' << $(read $x)
> ;^C
~$ sed -i 's/:/ /g' $x
sed: can't read /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: No such file or directory
~$ sed -i 's/:/ /g' < $x
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: No such file or directory
~$ sed -i 's/:/ /g' < echo $x
bash: echo: No such file or directory
~$ sed -i 's/:/ /g' | echo $x
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
sed: no input files
क्या यह भी काम कर सकता है? मैं उन फ़ाइलों को लिखने की ज़रूरत नहीं पसंद करूँगा जिन्हें मुझे ज़रूरत नहीं है इसलिए मैं sed का उपयोग कर सकता हूं। इस विशेष उदाहरण के लिए, अगर ~$x=$PATH ~$sed -i 's/:/ /g' $x
वास्तव में जिस तरह से मैंने उम्मीद की थी, वह काम करेगा, तो मुझे मिलेगा:
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games
जिसके बाद मैं एक चर को असाइन कर सकता हूं, और भविष्य के कमांड में उपयोग कर सकता हूं, जैसे ls $x
x=$(echo "$x" | sed 's/:/ /g')
?