मुझे लगता है कि यह एक 1-लाइनर के रूप में किया जा सकता है लेकिन यह थोड़ा बोझिल लग रहा था इसलिए मैंने लॉन्चिंग और संपादन में आसानी के लिए एक स्क्रिप्ट बनाई और इसे बुलाया यह findvids.sh
मेरे लिए काम किया है।
नोट: मैंने सभी वीडियो फ़ाइल प्रकारों को शामिल नहीं किया है , लेकिन मुझे यकीन है कि मेरे पास उनमें से अधिकांश हैं। एक उल्लेखनीय अपवाद .mkv है क्योंकि यह परियोजना के लिए लक्ष्य प्रारूप है और मुझे उन फ़ाइलों को खोजने की आवश्यकता नहीं है जिन्हें पहले ही संसाधित किया जा चुका है। अभिव्यक्ति की शुरुआत और अंत में उद्धरणों को बनाए रखते हुए पैटर्न की जांच करके और तदनुसार समायोजित करके अपनी आवश्यकताओं के अनुरूप स्क्रिप्ट में अतिरिक्त स्वरूपों (एक्सटेंशन) को जोड़ना बहुत सरल होना चाहिए। ध्यान दें कि आपके पास पढ़ने की अनुमति नहीं है फाइलें नहीं मिलेंगी।
#!/bin/bash
#This script is intended to find virtually all video file formats.
find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp*$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
संपादित करें टिप्पणी के आधार पर:$
विस्तार का प्रतीक के अंत में खोज पद पंक्ति के अंत में पाया जाना चाहिए। अगर हम मैच शुरू करने का ^
इरादा रखने से पहले लाइन की शुरुआत के बजाय मैच की शुरुआत करना चाहते थे । आप इन एंकरों को यहां और अधिक विस्तार से समझा सकते हैं ।
मैंने गति का पता लगाने के लिए एक गति तुलना की और परिणाम थे:
time locate *.mkv *.webm *.flv *.vob *.ogg *.ogv *.drc *gifv *.mng *.avi *.mov *.qt *.wmv *.yuv *.rm *.rmvb *.asf *.amv *.mp4$ *.m4v *.mp *.m?v *.svi *.3gp *.flv *.f4v
real 0m8.887s
user 0m5.814s
sys 0m0.052s
बनाम
time find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp4$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
real 0m2.795s
user 0m0.657s
sys 0m1.115s
अप्रत्याशित रूप से तेज है। मैं इस दृष्टिकोण का उपयोग करूंगा।
संपादित करें: आगे का परीक्षण इंगित करता है कि एक अलग मशीन पर तेजी से पता लगाया गया था। मुझे लगता है कि कैशिंग के कारण मेरे प्रारंभिक गति परीक्षण के परिणाम चारपाई थे।
सूत्रों का कहना है:
man find
man grep
/programming/7190565/unix-find-multiple-file-types