मैं जानता हूँ कि यह पुराना है, और टीआर तरह ही काम करता है, लेकिन मैं इस सवाल के पार हुआ और पाया है ओ पी ने कहा: मैं में क्रियान्वित कर रहा हूँ श, बाश नहीं। तो इसे echo -n "$ (grep -c पैटर्न) में घोंसला करना या तो काम नहीं करता है।
यह grep या sh इतना नहीं है कि echo का उपयोग कैसे किया जा रहा है। भविष्य के आगंतुकों के लिए, एकमात्र कारण यह काम नहीं करता है, प्रतिस्थापित आदेश के चारों ओर डबल कोट्स के कारण है। निम्नलिखित में, वास्तव में, sh का उपयोग करके भी काम करता है।
echo -n $(grep -c pattern)
उदाहरण:
$ ls /dev/sd? #example of formatted output
/dev/sda /dev/sdc /dev/sde /dev/sdg /dev/sdi /dev/sdk
/dev/sdb /dev/sdd /dev/sdf /dev/sdh /dev/sdj
$ echo $(ls /dev/sd?) #without -n, appends \n only at the end
/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk
$ echo -n $(ls /dev/sd?) #with -n, does not append the \n, but still strips the line breaks from the string
/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk
$ echo -n "$(ls /dev/sd?)" #output when double quotes are used
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
/dev/sdg
/dev/sdh
/dev/sdi
/dev/sdj
/dev/sdk
स्रोत
2015-12-02 17:07:37
यह काम किया! धन्यवाद! जब यह मुझे देता है तो स्वीकार करेगा; पी –