मानव-पठनीय फ़ाइल नामों को फ़िल्टर करने के लिए, आप [:print:]
( प्रिंट करने योग्य ) वर्ण वर्ग के नाम का उपयोग कर सकते हैं । आपको मैनुअल में ऐसी कक्षाओं के बारे में अधिक जानकारी मिलेगी grep
।
find . -type f -size 1033c -name "[[:print:]]*" ! -executable
एक दूसरे विचार पर, "मानव-पठनीय" आवश्यकता फ़ाइल नाम के बजाय, फ़ाइल की सामग्री को संदर्भित कर सकती है। दूसरे शब्दों में, आप पाठ फ़ाइलों को खोज रहे होंगे । वह थोड़ा और मुश्किल है। जैसा कि @D_Bye ने एक टिप्पणी में सुझाव दिया है, आपको तब file
फ़ाइल सामग्री प्रकार निर्धारित करने के लिए कमांड का उपयोग करना चाहिए । लेकिन यह file
एक पाइप के बाद चलाने के लिए एक अच्छा विचार नहीं होगा , क्योंकि यह फ़ाइल के नाम को प्रदर्शित करने के कार्य को जटिल करेगा। यहाँ मेरा सुझाव है:
find . -type f -size 1033c ! -executable -exec sh -c 'file -b $0 | grep -q text' {} \; -print
यह संक्षेप में है कि कैसे file
-पार्ट काम करता है:
-exec
विधेय कार्यान्वित sh -c 'file -b $0 | grep -q text' FILENAME
प्रत्येक के लिए FILENAME
कि संतुष्ट सभी पिछले शर्तों (प्रकार, आकार, गैर निष्पादन योग्य)।
- उन फ़ाइलों में से प्रत्येक के लिए, एक शेल (
sh
) इस संक्षिप्त स्क्रिप्ट को चलाता है :, फ़ाइल नाम के साथ file -b $0 | grep -q text
बदल रहा है $0
।
file
कार्यक्रम प्रत्येक फ़ाइल की सामग्री प्रकार निर्धारित करता है और इस जानकारी को आउटपुट। -b
विकल्प रोकता प्रत्येक परीक्षण किया फ़ाइल का नाम मुद्रण।
grep
file
प्रोग्राम से आने वाले आउटपुट को फ़िल्टर करता है , "टेक्स्ट" वाली लाइनों की खोज करता है । (अपने लिए देखें, file
कमांड का एक सामान्य आउटपुट कैसा दिखता है।)
- लेकिन
grep
फ़िल्टर्ड टेक्स्ट को आउटपुट नहीं करता है, क्योंकि इसमें -q
(शांत) विकल्प दिया गया है। यह क्या करता है, बस इसकी निकास स्थिति को या तो बदल दें 0
(जो "सही" का प्रतिनिधित्व करता है - फ़िल्टर किया गया पाठ पाया गया था) या 1 (जिसका अर्थ है "त्रुटि" - पाठ "पाठ" से आउटपुट में प्रकट नहीं हुआ था file
)।
- से आने वाली सच्ची / झूठी निकास स्थिति को और पूरी तरह से " " परीक्षण के अंतिम परिणाम के रूप में
grep
पारित किया sh
जाता है ।find
-exec sh -c 'file $0 | grep -q text' {} \;
- उपरोक्त परीक्षण सही होने पर ,
-print
आदेश निष्पादित किया जाता है (अर्थात परीक्षण की गई फ़ाइल का नाम मुद्रित होता है)।