मैं मूल रूप से फ़ाइलों की तलाश कर रहा हूँ फिर आकार के अनुसार छँटाई। स्क्रिप्ट काम करती है अगर मैं मानव द्वारा पठनीय आकार को सॉर्ट नहीं करता हूं। लेकिन मैं चाहता हूं कि आकार मानव पठनीय हो। मैं उन आकारों को कैसे छाँट सकता हूँ जो मानव पठनीय हैं?
उदाहरण के लिए:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
यह उम्मीद के मुताबिक काम करता है, मुझे अपनी फ़ाइलों का आकार बाइट्स आरोही में मिला है:
1.txt 1
test.txt 3
bash.sh* 573
DocGeneration.txt 1131
andres_stuff.txt 1465
Branches.xlsx 15087
foo 23735
bar 60566
2016_stuff.pdf 996850
अब, मैं चाहता हूं कि आकार मानव पठनीय हो, इसलिए मैंने l में एक -h पैरामीटर जोड़ा, और अब कुछ फाइलें क्रम से बाहर हैं:
ls -lh | sort -k 5 -n | awk '{print $9 " " $5}'
1.txt 1
DocGeneration.txt 1.2K
andres_stuff.txt 1.5K
test.txt 3
Branches.xlsx 15K
foo 24K
bar 60K
bash.sh* 573
2016_stuff.pdf 974K
ls
आउटपुट के 5 वें कॉलम में है
du
इसके बजाय का उपयोग करना ls
एक अच्छा विचार हो सकता है।
find
की -printf
अपने साथ %p
और %s
formatters (एक आकार के "humanisation" के बाद)।
-k 5
- वह कैसे काम करता है?