स्तंभ द्वारा सॉर्ट आउटपुट


13

मैं इस कमांड find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done( यहाँ से ) लेना चाहता हूँ । जिसका मूल रूप से आउटपुट है

./kennel:       11062
./shadow:       15449
./ccc:  9765
./journeyo:     14200
./norths:       10710

और इसे सबसे छोटे से सबसे बड़ी संख्या द्वारा क्रमबद्ध करें। लेकिन मुझे यकीन नहीं है कि कैसे बनाना है sort, या जो भी एक अलग कॉलम पर काम करता है।

जवाबों:


27

के माध्यम से लाइनों को पाइप करें sort -n -r -k2। सबसे बड़े से छोटे की तरह छाँटने का संपादन किया।


यह कोशिश की और निर्दोष रूप से काम करता है
Gert

3

एक विकल्प कॉलम को फ्लिप करना है:

$ find -maxdepth 1 -type d | while read -r dir; do printf "%d\t%s\n" "`find "$dir" | wc -l`" "$dir"; done

फिर आपको इस तरह आउटपुट मिलता है:

17  .
1   ./acroread_1000_1002
1   ./.ICE-unix
2   ./.X11-unix
1   ./orbit-mrozekma
2   ./ns.mrozekma.:0

आप sort -nrइसे अपने इच्छित तरीके से सॉर्ट करने के लिए पाइप कर सकते हैं। आप awk -F'\t' '{print $2 "\t" $1}'कॉलम को फ्लिप करने के लिए छांटे गए परिणाम को कुछ इस तरह से पाइप कर सकते हैं जैसे कि आपको उस क्रम में उनकी आवश्यकता हो

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