मैं एक बदसूरत (शायद) awk|sort|awk
काम करने के लिए लाइन में लिखा था। यह एक अजीब प्रक्रिया में भी किया जा सकता है, हालांकि, मैं थोड़ी आलसी हूं, बस गंदा और त्वरित तरीके से जाओ।
echo yourStr|awk '{
split($0,o); for(x in o) print length(o[x]),o[x]}'|sort -n|awk '!p{printf $2;p=$1;next}$1==p{printf " "$2}$1!=p{printf "\n"$2;p=$1}'
एक उदाहरण लेते हैं:
"Hello stackoverflow how are you today foo bar xoo yoo ooo"
ऊपर लाइन के साथ कोशिश: अपने पहले उदाहरण के साथ
kent$ echo "Hello stackoverflow how are you today foo bar xoo yoo ooo"|awk '{
split($0,o); for(x in o) print length(o[x]),o[x]}'|sort -n|awk '!p{printf $2;p=$1;next}$1==p{printf " "$2}$1!=p{printf "\n"$2;p=$1}'
are bar foo how ooo xoo yoo you
Hello today
stackoverflow
परीक्षण:
kent$ echo "A a b B cc ca cd" |awk '{
pipe quote> split($0,o); for(x in o) print length(o[x]),o[x]}'|sort -n|awk '!p{printf $2;p=$1;next}$1==p{printf " "$2}$1!=p{printf "\n"$2;p=$1}'
a A b B
ca cc cd
+ 1 दिलचस्प समस्या ... – Kent
'जीएनयू अजीब' का उपयोग कर एक एकल प्रक्रिया समाधान जोड़ा गया। यदि आप रुचि रखते हैं तो नीचे देखें। चीयर्स। – Steve