2012-09-17 10 views
8

मैं एक लंबी पाइप करता हूं, जो लिनक्स टर्मिनल में ...| awk '{print $5"\t\t" $3"\t"$4}' के साथ समाप्त होता है। कॉलम टैब के साथ गद्देदार हैं। पहली कॉलम प्रविष्टियों में वर्णों की अलग-अलग संख्या होती है, इसलिए दूसरे कॉलम परिणाम पूरी तरह से लंबवत नहीं होते हैं। तालिका को सही कैसे दिखाना है?लिनक्स टर्मिनल में आउटपुट टेबल-जैसी या एक्सेल-जैसी कॉलम के लिए अजीब है?

enter image description here

+0

awk के कॉलम संरेखण झंडे का प्रयास करें ... यहां देखने का प्रयास करें: http: // sta ckoverflow.com/questions/6345429/how-do-i-print-some-text-in-bash-and-pad-it-with-spaces-to-a-certain-width –

उत्तर

23

पाइप के लिए कोशिश स्तंभ आयकर के लिए परिणाम:

...| awk '{print $5"\t\t" $3"\t"$4}'|column -t 

आशा है कि यह मदद करता है

+0

| कॉलम-सहायता मिली =) धन्यवाद आप! – Ivan

+1

+1 आप 'टैब' कमांड का भी उपयोग कर सकते हैं, उदाहरण के लिए एक बड़ा टैब आकार सेट करने का प्रयास करें: 'टैब 25'। फिर अपनी पाइप चलाएं। यदि यह काफी बड़ा है तो आपको वांछित परिणाम मिलेंगे। हालांकि, मैं 'कॉलम-टी' – Steve

+0

का उपयोग करना पसंद करता हूं यदि आप' कॉलम 'में पाइप कर रहे हैं, तो आपको पहले फ़ील्ड के बाद डबल-टैब की आवश्यकता नहीं है (मुझे लगता है कि उस क्षेत्र में विस्तृत मूल्य को समायोजित करना था)। – chepner

6

यदि आपका क्षेत्रों टैब अलग के बाद एक लाइन स्क्रिप्ट सेल के साथ एक मेज प्रिंट कर सकते हैं सीमाएं

sed -e 's/\t/_|/g' table.txt | column -t -s '_' | awk '1;!(NR%1){print "-----------------------------------------------------------------------";}' 

Description   |value     |Comment 
----------------------------------------------------------------------- 
Internal    |322     | 
----------------------------------------------------------------------- 
External    |42515     | 
----------------------------------------------------------------------- 
संबंधित मुद्दे