Git 1.8 में .3 और बाद में, वहाँ pretty format में इस के लिए देशी समर्थन है, एन स्तंभ जितनी चौड़ाई के रूप में अगले प्लेसहोल्डर फ़ॉर्मेट करने के लिए %<(N)
सिंटैक्स का उपयोग:
$ git log --pretty=format:'%h %<(20)%an %s' -10
1.8.3 से पहले के संस्करणों के लिए, इस उत्तर का पिछला संस्करण, नीचे बनाए रखा, काम करना चाहिए।
यहाँ बैश में एक समाधान read
का उपयोग कर वापस अलग लॉग लाइनों पार्स करने के लिए है, और printf
एक निश्चित चौड़ाई क्षेत्र के साथ, उन्हें बाहर मुद्रित करने के लिए लेखकों के लिए तो कॉलम खड़े रहेंगे नाम। यह मानता है कि |
लेखक के नाम में कभी नहीं दिखाई देगा; यदि आप सोचते हैं कि कोई समस्या हो सकती है तो आप एक और डिलीमीटर चुन सकते हैं।
जब भी साथ सामना
[alias]
mylog = "!git log --pretty=format:'%h|%an|%s' -10 | while IFS='|' read hash author message; do printf '%s %-20s %s\n' \"$hash\" \"$author\" \"$message\"; done"
मैं तुम्हें awk
का उपयोग कर कम वर्ण में ऐसा कर सकता है लेकिन जैसा कि the saying चला जाता है यकीन है कि,:
git log --pretty=format:'%h|%an|%s' -10 |
while IFS='|' read hash author message
do
printf '%s %-20s %s\n' "$hash" "$author" "$message"
done
आप इस उपनाम के रूप में उपयोग करते हुए बना सकते हैं एक समस्या, कुछ लोग कहते हैं, "एडब्ल्यूके का उपयोग करते हैं।" अब, उन्हें दो समस्याएं हैं।
बेशक
, कहा कि, मैं कैसे जो थोड़ा कम है awk
में यह करने के लिए यह पता लगाने की थी:
git ... | awk -F '|' '{ printf "%s %-20s %s\n", $1, $2, $3 }'
स्रोत
2010-09-02 22:37:26
यदि ऐसा करने के लिए एक डिब्बाबंद यूनिक्स उपयोगिता है तो मुझे इसके बारे में जानना अच्छा लगेगा! सबसे अच्छी बात यह है कि मैं सोच सकता हूं कि पर्ल स्वरूपित आउटपुट है, जो दर्द है। – zwol
@Zack: मैन कॉलम आपका मित्र है। – toong
दुर्भाग्यवश, यह एक बीएसडीवाद प्रतीत होता है। – zwol