Sed के साथ "]" के बाद सभी वर्णों को एक पंक्ति में कैसे हटाएं?


13

Sed के साथ "]" "के बाद सभी वर्णों को एक पंक्ति में कैसे हटाएं?"

Im बिल्ली, awk का उपयोग करके कुछ फ़ाइल को टटोलने की कोशिश कर रहा है। अब मेरा ऑनलाइनर मुझे कुछ इस तरह लौटाता है

121.122.121.111] other characters in logs from sendmail.... :)

अब मैं "]" चरित्र ("") के बाद सभी को हटाना चाहता हूं। मैं केवल 121.122.121.111अपने आउटपुट में चाहता हूं।

मैं sed के उस विशेष उदाहरण के लिए गुगली कर रहा था, लेकिन उन उदाहरणों में कोई मदद नहीं मिली।

जवाबों:


20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

तो अगर आपके पास लाइनों से भरा एक फाइल है जैसे आप कर सकते हैं

 sed 's/].*//' filename


3

कुछ इस तरह

sed 's|\(.*\)\] .*$|\1|'

आपको जो चाहिए वो करना चाहिए। \(.*\)]अप करने के लिए सभी पाठ कब्जा ]एक याद पैटर्न और उसके बाद में \1पूरी लाइन के लिए विकल्प यह।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.