मैं कैसे जांचता हूं कि एक txt फ़ाइल में क्या है, और यदि अंतिम वर्णों की निश्चित संख्या एक चर से मेल खाती है, तो मिलान करने वालों को हटा दें?


0

मेरे पास एक बैच स्क्रिप्ट है जो यह जांचने की आवश्यकता है कि एक टेक्स्टफाइल ( .logया .txt) में क्या है।

जब यह जाँच की जाती है, तो इसे उन पंक्तियों को हटाने की आवश्यकता होती है जिनमें चरचरों का समान विन्यास होता है जो दूसरे चर में परिभाषित होता है।

तो, अगर var1=abcतब हर पंक्ति जिसमें "एबीसी" अंतिम (इस मामले में, तीन अक्षर) पाठ फ़ाइल से हटा दी जाती है।

मैं उसे कैसे कर सकता हूँ?

जवाबों:


0

टॉम,

मैं / v विकल्प के साथ findstr.exe की कोशिश करूंगा:

findstr /v "text_to_drop" file.txt

यदि आप पॉवरशेल का उपयोग कर रहे हैं, तो प्रयास करें:

PS C:\> Select-String -Path "process.txt" -Pattern "text_to_drop" -NotMatch

देखें https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490907(v=technet.10) और https://docs.microsoft.com/en- हमें / powershell / मॉड्यूल / microsoft.powershell.utility / चयन स्ट्रिंग? दृश्य = powershell -6


1
आप पंक्ति के अंत में एक स्ट्रिंग मिलान करने के लिए रेगुलर एक्सप्रेशन का उपयोग करने के लिए, उदाहरण के लिए की आवश्यकता होगी findstr /v /r /c:"%var1%$" file.log। आउटपुट को किसी अन्य फ़ाइल में सहेजने की आवश्यकता होगी, जिसे तब मूल को अधिलेखित करने के लिए स्थानांतरित किया जाता है file.log
AFH

1
@AFH - या /Eविकल्प का उपयोग करें findstr /v /b /c:"%var1%" file.log:। किसी भी तरह से, यह केवल उन लाइनों से मेल खाता है जो इसके साथ समाप्त होते हैं \r\n। यदि अंतिम पंक्ति लाइन टर्मिनेटर को याद कर रही है, या यदि यूनिक्स शैली की रेखाओं का उपयोग किया जाता है, तो यह काम नहीं करेगा।
डेबेनहम

@ दांभाम - हां, मैं इस बारे में भूल गया /e, जो नियमित अभिव्यक्तियों का उपयोग करने की तुलना में सरल है; यह मैच स्ट्रिंग में आरई आरक्षित पात्रों से भी प्रभावित नहीं होगा।
AFH
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.