मुझे विंडोज़ पर लॉग फ़ाइल देखने के लिए इन आदेशों की आवश्यकता है, लेकिन मैं कोई प्रोग्राम इंस्टॉल नहीं करता हूं, और मुझे विंडोज़ के साथ पावरहेल पसंद है।पावरहेल में क्या सिर, पूंछ, अधिक, कम, sed करते हैं?
उत्तर
Get-Content
(उपनाम: gc
) टेक्स्ट फ़ाइल पढ़ने के लिए आपका सामान्य विकल्प है। इसके बाद आप आगे फ़िल्टर कर सकते हैं:
gc log.txt | select -first 10 # head
gc -TotalCount 10 log.txt # also head
gc log.txt | select -last 10 # tail
gc -Tail 10 log.txt # also tail (since PSv3), also much faster than above option
gc log.txt | more # or less if you have it installed
gc log.txt | %{ $_ -replace '\d+', '($0)' } # sed
यह छोटी फ़ाइलों के लिए काफी अच्छा काम करता है, बड़े (कुछ एमआईबी से अधिक) शायद थोड़ा धीमे होते हैं।
PowerShell Community Extensions में विशेष फ़ाइल सामग्री (जैसे गेट-फाइलटेल) के लिए कुछ cmdlets शामिल हैं।
more.exe
विंडोज पर मौजूद है, less
के बंदरगाह आसानी से पाए जाते हैं (और PowerShell Community Extensions, पीएससीएक्स, में एक शामिल है)।
पावरशेल वास्तव में या तो अलग कार्यक्रमों के लिए कोई विकल्प प्रदान नहीं करता है, लेकिन संरचित डेटा Out-Grid
सहायक हो सकता है।
Head
और Tail
दोनों Select-Object
क्रमशः -First
और -Last
पैरामीटर का उपयोग कर के साथ नकल करते जा सकता है।
Sed
फ़ंक्शंस सभी उपलब्ध हैं लेकिन संरचित रूप से अलग-अलग हैं। फ़िल्टरिंग विकल्प Where-Object
(या Foreach-Object
और श्रेणियों के लिए कुछ राज्य) में उपलब्ध हैं। अन्य, परिवर्तन, संचालन Select-Object
और Foreach-Object
के साथ किया जा सकता है।
हालांकि PowerShell (.NET) ऑब्जेक्ट्स पास करता है - उनके सभी टाइप की गई संरचना के साथ, उदाहरण के लिए। तिथियां DateTime
उदाहरण हैं - केवल स्ट्रिंग्स की बजाय, जिन्हें प्रत्येक कमांड को खुद को पार्स करने की आवश्यकता होती है, sed
और ऐसे अन्य प्रोग्राम अनावश्यक हैं।
यदि आपको विंडोज़ पर बड़ी (या छोटी) लॉग फाइलों की जांच करने की आवश्यकता है, तो मुझे सबसे अच्छा टूल माइक्रोसॉफ्ट के मुफ़्त Log Parser 2.2 मिला है। यदि आप चाहें तो आप इसे PowerShell से कॉल कर सकते हैं और यह आपके लिए भारी भारोत्तोलन करेगा, और बहुत तेज़ भी होगा।
वैसे भी धन्यवाद, मेरा पर्यावरण Win2k8R2 है जो लॉग पार्सर 2.2 –
मैं कुछ बेहतर समाधान मिल गया: निर्मित तरीके head
और tail
करने के लिए
gc log.txt -ReadCount 5 | %{$_;throw "pipeline end!"} # head
gc log.txt | %{$num=0;}{$num++;"$num $_"} # cat -n
gc log.txt | %{$num=0;}{$num++; if($num -gt 2 -and $num -lt 7){"$num $_"}} # sed
यहाँ कर रहे हैं। पाइप का उपयोग न करें क्योंकि यदि आपके पास बड़ी फाइल है, तो यह बहुत धीमी होगी। इन अंतर्निर्मित विकल्पों का उपयोग करना बड़ी फ़ाइलों के लिए भी तेज होगा।
gc log.txt -head 10
gc log.txt -tail 10
gc log.txt -tail 10 -wait # equivalent to tail -f
की सिस्टम आवश्यकताओं में नहीं है लेकिन [जॉय की टिप्पणी] (https://stackoverflow.com/questions/9682024/how-to-do-what-head-tail- अधिक-कम-sed-do-in-powerhell # comment60271566_9682594) सटीक विपरीत इंगित करता है! मुझे कैसे पता चलेगा कि किस पर भरोसा करना है या कौन सा (अंतर्निहित) विधि सबसे कुशल है? –
@ एनएच मेरा जवाब जॉय की टिप्पणी के साथ समझौता है। उनकी टिप्पणी कहती है "- कम धीमा है ... यही कारण है कि सामग्री प्राप्त करें- पूंछ मौजूद है।" '| select -last' पाइप का उपयोग करता है। मैं पाइप के बिना '-टेल 'का उपयोग कर रहा हूँ। लेकिन अगर आपको कभी भी दो विरोधाभासी उत्तर मिलते हैं, तो आप शायद उस व्यक्ति पर भरोसा कर सकते हैं जिसकी बहुत प्रतिष्ठा है। इसके अलावा, आप बस एक बड़ी फ़ाइल पर दो तरीकों का प्रयास कर सकते हैं। यह एक बड़ी फाइल पर बहुत स्पष्ट होगा। – wisbucky
समझ गया। क्षमा करें, मुझे पहली बार पोस्ट पढ़ने पर उलझन में होना चाहिए था। –
- 1. हास्केल सूची कड़ी बनाम (सिर: पूंछ) स्वरूप
- 2. पावरहेल में 'अधिक' या 'कम' कमांड के बराबर?
- 3. स्काला पूंछ पुनरावर्ती स्ट्रीम प्रोसेसर समारोह विशेषता में परिभाषित धारा सिर को
- 4. पावरहेल में सक्रिय निर्देशिका उपयोगकर्ता का प्रतिरूपण कैसे करते हैं?
- 5. क्या कर सकते हैं कि sed क्या कर सकते हैं?
- 6. क्या सीपीयू निर्देश सबसे अधिक शक्ति का उपयोग करते हैं?
- 7. आपके पसंदीदा पावरहेल सीएमडीलेट्स क्या हैं?
- 8. रेल कम से कम त्रुटि फेंकने उत्पन्न करते हैं?
- 9. "क्या चुनें ((चयन करें), $ | = 1) [0])" पर्ल में करते हैं?
- 10. क्या sed अवरुद्ध है?
- 11. sed विशिष्ट लाइनों को शामिल नहीं करते हैं
- 12. पावरहेल में `$?` क्या है?
- 13. पसंद करते हैं malloc calloc से अधिक
- 14. में sed
- 15. अधिक नियंत्रक लेकिन कम क्रियाएं या कम नियंत्रक लेकिन अधिक क्रियाएं
- 16. नेस्टिंग> (से अधिक) कम-सीएसएस में
- 17. sed -
- 18. आप वीबीए में एक सरणी को कैसे कम करते हैं?
- 19. sed
- 20. क्या यह कार्यान्वयन पूंछ-पुनरावर्ती
- 21. sed/
- 22. sed
- 23. === PHP में क्या करते हैं
- 24. sed
- 25. आप शैल स्क्रिप्ट चर का उपयोग sed के तर्क के रूप में कैसे करते हैं?
- 26. sed
- 27. पूंछ-एफ वेबब्रोसर में
- 28. प्रदर्शन अधिक से अधिक से कम एक Makefile
- 29. sed
- 30. पावरहेल में $$, $ ?, $^का प्रतिनिधित्व क्या करता है?
लॉग फ़ाइल बहुत बड़ी है, लगभग कई एमबीइट्स। Notepad.exe द्वारा देखना बहुत मुश्किल है। –
यदि आप अपने आधार के रूप में 'नोटपैड' का उपयोग कर रहे हैं तो मैं वैकल्पिक पाठ संपादकों को देखने का सुझाव दूंगा, वहां बहुत सारे (मुफ्त और भुगतान दोनों) विकल्प हैं। सभी नोटपैड से बेहतर हैं (हालांकि यह एक चुनौती का अधिक नहीं है)। – Richard
[पावरशेल बनाम यूनिक्स शैल] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/573623/powershell-vs-unix-shells) – manojlds