मैं एक फ़ाइल (list.txt
कहा जाता है कहते हैं) है कि फ़ाइलों के लिए संबंधित पथ, प्रति पंक्ति एक पथ, इस तरह यानी कुछ शामिल है:उबंटू बैश स्क्रिप्ट: अंतिम स्लैश द्वारा पथ को कैसे विभाजित करें?
foo/bar/file1
foo/bar/baz/file2
goo/file3
मैं एक bash स्क्रिप्ट कि एक समय में एक पथ प्रक्रियाओं लिखने के लिए की जरूरत है, इसे अंतिम स्लैश पर विभाजित करता है और फिर तर्क के रूप में पथ के दो टुकड़ों को खिलाकर एक और प्रक्रिया शुरू करता है।
for p in `cat list.txt`
do
# split $p like "foo/bar/file1" into "foo/bar/" as part1 and "file1" as part2
inner_process.sh $part1 $part2
done
मैं कैसे विभाजित हो जाते हैं: अब तक मैं केवल पाशन हिस्सा है? जब पथ में कोई कमी नहीं होती है तो क्या यह अपमानजनक मामले में काम करेगा?
Thx
यह वास्तव में "part1 =' dirname $ p'/"है क्योंकि मुझे अंतिम स्लैश चाहिए, लेकिन इसके अलावा यह सही है :-) –
जैसे ही फ़ाइल नाम में एक स्थान या मजाकिया प्रतीक होते हैं, यह दुर्भाग्य से टूट जाएगा .. । ':-(' –
सह टूटने के लिए इस तरह का टूटना छोटा है urse: 'part1 =" $ (dirname "$ p") "' और 'part2 =" $ (बेसनाम "$ p") "' – zenaan