पिछले सीमांकक पर कट स्ट्रिंग


14

मेरे पास एक फ़ाइल नाम है a.b.c.txt, मैं चाहता हूं कि इस स्ट्रिंग को विभाजित किया जाए

string1=a.b.c
string2=txt

मूल रूप से मैं फ़ाइल नाम और उसके विस्तार को विभाजित करना चाहता हूं। मैं प्रयोग किया जाता है cut, लेकिन यह के रूप में विभाजन a,b,cऔर txt। मैं अंतिम सीमांकक पर स्ट्रिंग में कटौती करना चाहता हूं।

क्या कोई मदद कर सकता है?

जवाबों:



15

ऐसा करने के लिए कई उपकरण हैं।

जैसा कि आप उपयोग कर रहे थे cut:

$ string1="$(cut -d. -f1-3 <<<'a.b.c.txt')"
$ string2="$(cut -d. -f4 <<<'a.b.c.txt')"
$ echo "$string1"
a.b.c
$ echo "$string2"
txt

मैंने पैरामीटर विस्तार का उपयोग किया होगा (यदि शेल इसका समर्थन करता है):

$ name='a.b.c.txt'
$ string1="${name%.*}"
$ string2="${name##*.}"
$ echo "$string1"
a.b.c
$ echo "$string2"
txt

1
बैश समाधान सुरुचिपूर्ण है।
törzsmókus 13

कटौती एक अवधि की एक निश्चित संख्या के साथ ही काम करता है!
törzsmókus 13

0
echo "a.b.c.txt" | cut -d. -f1-3

cutआदेश परिसीमित होगा .और आप 4 कारकों दे देंगे ( a, b, c, txt)। ऊपर कमांड 1 से 3 को फैक्टर प्रिंट करेगा (शामिल)।

या:

echo "a.b.c.txt" | cut -d -f-3

उपरोक्त कमांड 3 (शामिल) तक फैक्टर 1 को प्रिंट करेगा।

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