ls <text.txt (सबडिर में फाइल्स और फाइलों के रिज़ॉल्यूशन के साथ)


1

लंबे समय तक रहने वाले, पहली बार प्रश्नकर्ता!

मुझे निम्नलिखित नहीं मिल सकते हैं: मैं एक टेक्स्टफाइल बनाना चाहूंगा, जो सबडिर के लोगों, उनके रास्ते और मेटाडाटा (विशेष रूप से वीडियो रिज़ॉल्यूशन) सहित फाइलनामों से भरा है। वह सब सांत्वना से।

मैं कुछ ऐसा ही नहीं ढूँढ सका, केवल कुछ जिसे मीडियाइनोफ कहा जाता है, जो पास हो जाता है, लेकिन केवल 1 फ़ाइल के लिए काम करता है जहां तक ​​मैं देखता हूं।

क्या कोई मुझे सही दिशा बतला सकता है? आपके समय के लिए धन्यवाद! चियर्स

और कृपया मेरे सवाल के अपने हाथ रखें।


You संकल्प ’से आपका क्या अभिप्राय है? बाइट्स में आकार?
निकेल्स बोरलिन

संकल्प से मेरा मतलब मीडियाफाइल के आकार से है। एक वीडियो के साथ Fe यह 600x480 कह सकता है
Zwolse

जवाबों:


2

सामान्य तौर पर, जिस तरह से एक 1-तर्क कमांड ( mediainfo foo) लेता है और इसे फाइलों के एक समूह में लागू करता है, वह है findऔर xargs। देखते हैं man find;man xargs

मैं एनयूएल-टर्मिनेटेड विकल्पों ( -print0और -0) का उपयोग कर रहा हूं क्योंकि आपने नहीं कहा था कि किसी भी फाइलनाम में स्थान नहीं था।

find . -type f -print0 | xargs -0 -n 1 mediainfo

नहीं और नहीं नकारात्मक पर डबल नकारात्मक यकीन है। लेकिन मुझे लगता है कि ज्यादातर लोग अपने फ़ाइलनाम में स्थान रखते हैं।
विनयुनुच्स 2 यूनिक्स

यह फ़ाइल नाम के साथ काम करता है, यहां तक ​​कि इसमें रिक्त स्थान वाले लोग, और "<" के साथ एक पाठ फ़ाइल में इसका लेखन सही ढंग से। "अतिरिक्त जानकारी" का एक बहुत कुछ मिला है, लेकिन यह सही दिशा में जा रहा है। धन्यवाद!
Zwolse

1
या का उपयोग करें -exec mediainfo {} \;वहाँ से गुजरने का कोई मतलब नहीं है xargs। और हाँ -execरिक्त स्थान के साथ फाइलनेम को संभालेंगे
सर्गी कोलोडियाज़नी

1

mediainfoयह जानकारी प्राप्त करने के लिए एक उत्कृष्ट विकल्प है। मैं यह सुनिश्चित करने के लिए एक स्क्रिप्ट का उपयोग करूँगा कि मुझे एक ही फ़ाइल पर जो परिणाम चाहिए थे, वह मुझे मिल रहा है और फिर इसे इच्छित दायरे में पुन: दर्ज करें। यहाँ एक उदाहरण है जिसे मैंने 1linenfo.shअपनी ~/binनिर्देशिका में बुलाया और रखा :

निष्पादन की योजना बनाने वाली सभी लिपियों के साथ आपको अनुमतियों को निष्पादन योग्य में बदलना होगा। इस विशिष्ट मामले में यह होगाchmod +x ~/bin/1linenfo.sh

#! /bin/bash
pfx=$(mediainfo --Inform="General;%CompleteName%" "$1")
sfx=$(mediainfo --Inform="Video;%Width%x%Height%" "$1")
Title="$pfx $sfx" #build desired line of output
echo "$Title" #output

उपरोक्त में वह जानकारी शामिल है जो आप चाहते हैं लेकिन आप आसानी से और जोड़ सकते हैं। अधिक विस्तृत आउटपुट विकल्पों के लिए आउटपुट की जाँच करेंmediainfo --Info-Parameters

आप आसानी से अपने इच्छित दायरे में इसे पुनरावृत्त करने के लिए खोज का उपयोग कर सकते हैं।

find . -type f -exec bash -c '1linenfo.sh "{}"' \;

यदि आपको आउटपुट को किसी फ़ाइल में पुनर्निर्देशित करने की आवश्यकता है तो आप कुछ इस तरह से कर सकते हैं:

find . -type f -exec bash -c '1linenfo.sh "{}"' \;>report.txt

यदि इस उत्तर के बारे में कुछ भी स्पष्ट नहीं है, तो मुझे एक टिप्पणी दें और मैं स्पष्ट करने के लिए अपनी पूरी कोशिश करूंगा।


1
यदि स्क्रिप्ट अंदर है ~/binऔर ओपी पहले से ही खस्ता है, ~/.bashrcतो bash -cभाग की कोई आवश्यकता नहीं है , -execध्वज निर्देशिकाओं PATHको खोजेगा और स्क्रिप्ट को ठीक-ठीक ढूंढेगा। और निश्चित रूप से इसे निष्पादन योग्य अनुमति की आवश्यकता है, इसलिए chmod +xस्क्रिप्ट पर उल्लेख करना
चाह सकते हैं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.