से अधिक संख्याओं के लिए Grep लाइनें मैं किसी दिए गए नंबर से अधिक आउटपुट के पहले फ़ील्ड में लाइनों के लिए grep करने की कोशिश कर रहा हूं। इस उदाहरण में, वह संख्या 755
है। आखिरकार, मैं जो कर रहा हूं वह stat -c '%a %n' *
का उपयोग कर 755
से अधिक विशेषाधिकारों के साथ (और बराबर नहीं) प्रत्येक फ़ाइल को सूचीबद्ध करने का प्रयास कर रहा है और फिर इस अंतिम सूची को प्राप्त करने के लिए कुछ grep'ing (या संभवतः seding?) पर पाइप करें। कोई विचार यह कैसे पूरा किया जा सकता है?दिए गए नंबर
उत्तर
कोशिश यह:
stat -c '%a %n' *|awk '$1>755'
अगर आप सिर्फ अपने अंतिम उत्पादन में फ़ाइल नाम चाहते हैं, विशेषाधिकार संख्या को छोड़ आप:
stat -c '%a %n' *|awk '$1>755{print $2}'
संपादित
वास्तव में आप कर सकते थे अजीब के भीतर chmod
करें। लेकिन आपको यह सुनिश्चित करना चाहिए कि उपयोगकर्ता को अजीब रेखा को निष्पादित करने के लिए उन फ़ाइलों को बदलने की अनुमति है।
stat -c '%a %n' *|awk '$1>755{system("chmod 755 "$2)}'
फिर से, मान लें कि फ़ाइल नाम में कोई स्थान नहीं है।
ओह उस छोटे ऐड-ऑन के लिए धन्यवाद। मैं सिर्फ फील्ड 2 काटने जा रहा था, लेकिन आपका एक कम पाइप में इसे पूरा करता है! – user2150250
रिक्त स्थान के साथ फ़ाइल नामों के लिए देखें। –
@ user2150250 नोट, मेरा दूसरा अजीब एक-लाइनर मानता है कि आपके फ़ाइल नाम में कोई स्थान नहीं है। – Kent
मैं awk(1)
का उपयोग करेंगे:
stat -c '%a %n' * | awk '$1 > 755'
awk
पैटर्न लाइनों से मेल खाता है, जहां पहले क्षेत्र में अधिक से अधिक तो 755 आप एक कार्रवाई जोड़ सकता है अगर आप एक लाइन या कुछ और के एक सबसेट प्रिंट करना चाहते है, भी (@ केंट का जवाब देखें)।
न तो grep
और न ही sed
अंकगणित में अच्छे हैं। awk
मदद कर सकता है (दुर्भाग्य से मुझे यह नहीं पता)। लेकिन ध्यान दें कि find
काम यहाँ भी हो सकता है,:
-perm mode
File's permission bits are exactly mode (octal or symbolic).
Since an exact match is required, if you want to use this form
for symbolic modes, you may have to specify a rather complex
mode string. For example -perm g=w will only match files which
have mode 0020 (that is, ones for which group write permission
is the only permission set). It is more likely that you will
want to use the `/' or `-' forms, for example -perm -g=w, which
matches any file with group write permission. See the EXAMPLES
section for some illustrative examples.
-perm -mode
All of the permission bits mode are set for the file. Symbolic
modes are accepted in this form, and this is usually the way in
which would want to use them. You must specify `u', `g' or `o'
if you use a symbolic mode. See the EXAMPLES section for some
illustrative examples.
-perm /mode
Any of the permission bits mode are set for the file. Symbolic
modes are accepted in this form. You must specify `u', `g' or
`o' if you use a symbolic mode. See the EXAMPLES section for
some illustrative examples. If no permission bits in mode are
set, this test matches any file (the idea here is to be consis‐
tent with the behaviour of -perm -000).
तो क्या आप के लिए काम कर सकता है:
find . -perm -755 -printf '%m %p\n'
बस -printf
हिस्से को हटाने अगर आप केवल फ़ाइल नाम की जरूरत है।
- 1. किसी दिए गए नंबर
- 2. किसी दिए गए नंबर
- 3. किसी दिए गए लाइन नंबर
- 4. सबसे छोटी संख्या दो अंक दिए गए नंबर
- 5. दिए गए नंबर के लिए लगातार चार संख्याएं खोजें
- 6. किसी अनुक्रमित अनुक्रम में दिए गए पहले नंबर से पहले नंबर प्राप्त करें
- 7. दिए गए सेट
- 8. किसी दिए गए पैटर्न
- 9. किसी दिए गए बिंदु
- 10. दिए गए आदेश
- 11. दो दिए गए एनएसडीएटी
- 12. किसी दिए गए प्रतिशत
- 13. दिए गए इंडेक्स
- 14. दिए गए कुंजी को
- 15. किसी दिए गए यूटीटाइप
- 16. दिए गए एसीआईआई मूल्य
- 17. दिए गए एसक्यूएल क्वेरी
- 18. किसी दिए गए पथ
- 19. किसी दिए गए दिनांक
- 20. किसी दिए गए दिनांक
- 21. सी # दिए गए एचडब्ल्यूएन
- 22. दिए गए दो दिनांकों
- 23. किसी दिए गए दिनांक
- 24. दिए गए उपयोगकर्ता नाम
- 25. किसी दिए गए आकार
- 26. किसी दिए गए हैशटैग
- 27. किसी दिए गए क्रमपरिवर्तन
- 28. किसी दिए गए फ़ॉन्ट
- 29. दिए गए द्विपक्षीय ग्राफ
- 30. किसी दिए गए मैट्रिक्स
चूंकि '755' वास्तव में एक ऑक्टल संख्या बिट्स के अनुक्रम का प्रतिनिधित्व करता है, वास्तव में" से अधिक "का क्या अर्थ है? '666' सभी को पहुंच लिखने देता है; क्या यह "755' से अधिक" है? '755'" '666' से अधिक" है? –
ओएस एक्स उपयोगकर्ता: 'stat -c '% के बराबर% n' *' (लिनक्स) 'stat -f '% lp% n' *' – mklement0
प्रतीत होता है कि व्यक्ति grep के लिए पूछ रहा है, जबकि लोग अभी भी दे रहे हैं awk? – Soncire