मैं कमांड लाइन पर छपी लाइनों के बीच नई कड़ियाँ कैसे जोड़ूँ?


30

मेल लॉग को पढ़ना बहुत मुश्किल है। मैं कमांड लाइन पर छपी प्रत्येक लाइन के बीच एक रिक्त लाइन कैसे आउटपुट कर सकता हूं? उदाहरण के लिए, मान लीजिए कि मैं लॉग-इन grep-ing हूं। इस तरह, कई लिपटे लाइनों को भ्रमित नहीं किया जा रहा है।

जवाबों:


52
sed G 
# option: g G    Copy/append hold space to pattern space.

Gअक्सर इस्तेमाल नहीं किया जाता है, लेकिन इस उद्देश्य के लिए अच्छा है। sed दो बफर स्थान रखता है: "पैटर्न स्पेस" और "होल्ड स्पेस"। लाइनों द्वारा संसाधित sed प्रायः प्रतिमान अंतरिक्ष के माध्यम से प्रवाह विभिन्न आदेशों उसकी सामग्री (पर काम के रूप में s///, p, आदि); होल्ड स्पेस खाली होना शुरू हो जाता है और इसका उपयोग केवल कुछ कमांड द्वारा किया जाता है।

Gआदेश एक नई पंक्ति और पैटर्न अंतरिक्ष के लिए पकड़ अंतरिक्ष की सामग्री को जोड़ देता है। उपरोक्त सीड प्रोग्राम कभी भी होल्ड स्पेस में कुछ भी नहीं डालता है, इसलिए Gप्रभावी रूप से संसाधित होने वाली हर पंक्ति के लिए केवल एक नई पंक्ति जोड़ता है।


3
-E आवश्यक नहीं है। पाइपिंग whatever | sed Gकरने की कोशिश करनी चाहिए।
frabjous

@frabjous: ठीक है, साथ ही साथ छोड़ सकते हैं -eक्योंकि हमें केवल एक ही कमांड तर्क की आवश्यकता है।
क्रिस जॉन्सन

क्या मैं आपको पसंद कर सकता हूं, +2 इसे पकड़ लिया!
क्रिश्चियन बोंजियोर्नो

लेकिन, यह केवल
स्टडआउट

8

अतिरिक्त न्यूलाइन जोड़ने के लिए awk का उपयोग करें। इससे आप उन चीजों को भी फ़िल्टर कर सकते हैं जिन्हें आप नहीं चाहते हैं।

awk '{print $0,"\n"}' | less

4

सेड का प्रयोग करें और पूरी लाइन को एक अतिरिक्त न्यूलाइन कैरेक्टर से बदल दें:

grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"

4
थोड़ा सरल sed प्रतिस्थापन 's / $ / \ n /' होगा, हालांकि @ क्रिस जॉन्सन का 'G' कमांड और भी सरल है।
Camh

3

क्या यह आप के बाद कर रहे हैं?

grep SPAM mail.log | while read -r line; do echo; echo $line; done


आप शायद read -rबैकस्लैश पात्रों को विशेष मानने से बचने के लिए उपयोग करना चाहेंगे ।
क्रिस जॉन्सन

0

यदि यह केवल देखने के लिए अधिक से अधिक है, तो मैं उन्हें एक पाठ फ़ाइल में भेजना चाहता हूं और एक पाठ संपादक के साथ खोलना चाहता हूं ताकि आप आसानी से रैप करने या न करने और खोज करने के लिए लाइनें सेट कर सकें ... और अवांछित पंक्तियों को हटा दें और इसी तरह बिना बहुत सारी कमांड टाइप करना।

cat file.log > log.txt और gedit log.txtया नैनो की तरह एक टर्मिनल संपादक

संपादित करें: या cp file.log log.txtजो निश्चित रूप से आसान और तेज़ है ... कीथबी टिप्पणी के लिए धन्यवाद


1
क्यों catऔर क्या नहीं cp?
कीथब

यकीन है cpकि आसान और तेज हो जाएगा! ... योग्य - मैं अन्य जवाब पढ़ रहा था grepऔर awkइसलिए मैंने इसे लिखा था catलेकिन मैं इसे सही कर रहा हूं, धन्यवाद
laurent
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.