क्या होगा अगर फ़ाइल 2 में उन प्रतीकों में से प्रत्येक के बाद वर्ण हैं? मैं भी ऐसा ही करना चाहता हूं लेकिन अनुगामी पात्रों को रखना।
ठीक है, एक प्रति बनाएँ file2 केवल वही फ़ील्ड है जिसे आप फ़िल्टर करना चाहते हैं
और, अगर करंट है file2 "गैर-अद्वितीय प्रतीक" है हाथोंहाथ पीछा किया
"अनुगामी पात्रों" द्वारा (उदा।, efr-42, rte-17, आदि।),
की एक और प्रति बनाओ file2 जहां वे अंतरिक्ष से अलग होते हैं।
आपके द्वारा दिए गए उदाहरण डेटा के आधार पर उदाहरण कमांड हैं:
sed 's/\(...\).*/\1/' file2.sorted > file2.symbol_only
sed 's/\(...\)\(.*\)/\1 \2/' file2.sorted > file2.separated
या
sed 's/\([^-]*\)-.*/\1/' file2.sorted > file2.symbol_only
sed 's/\([^-]*\)\(-.*\)/\1 \2/' file2.sorted > file2.separated
… आपके प्रश्न में जोड़े गए नए डेटा के आधार पर
फिर उपयोग करें comm पहले जैसा:
comm -13 file1.sorted file2.symbol_only > file2.no_match
... और अनुगामी पात्रों के साथ प्रतीकों को मिलाएं
join file2.no_match file2.separated
यदि आवश्यक हो, तो दूसरे का उपयोग करें sed आपके द्वारा जोड़े गए रिक्त स्थान को निकालने के लिए।
यह मेरे लिए होता है कि आप आउटपुट फ़ाइल को वापस पाने के लिए इस ट्रिक पर निर्माण कर सकते हैं file2 मूल आदेश।
- मूल की एक प्रति तैयार करें
file2 लाइन नंबरों के साथ।
- प्रतीकों के दाईं ओर रेखा संख्याओं को फेरबदल करें।
- (उपरोक्त, के साथ शुरू
sort आदेशों)
- मूल पंक्ति संख्या पर आउटपुट को क्रमबद्ध करें।
- लाइन नंबरों को स्ट्रिप करें।
अगर आपको इसकी मदद चाहिए तो मुझे बताएं।