嗨我在课堂上有一份作业,其中一部分是根据篇幅对字符串列表进行排序。
我们无法使用sed
或bash
,只能使用ten
car
something
plane
stack
overflow
。假设我有类似的东西:
something
overflow
stack
plane
ten
car
排序的最终结果应该是
extSort(){
total=$(cat $file| wc -w)
count="$(cat $file | tr ' ' '\n' | tr -d '[:punct:]' | sort | uniq -c | sort -k1,1nr -k2 -n)"
while read line; do
if [ $(echo $line | wc -w) -eq 1 ]; then
continue
fi
current=$(echo $line | cut -d " " -f 1)
percent=$(echo "$current/$total*100" | bc -l)
round=$(echo "scale=2; $percent/1" | bc -l)"%%"
printf "$line "$round"\n" done <<<"$input"
}
这意味着顶部的单词越长,按字母顺序排列的大小相同。
这是我迄今为止所做的:
find . -printf "%f/n" |
hexdump -v -e '/1 "%03d "' -e '/1 "0x%02X "' -e '/1 "%c\n"'
答案 0 :(得分:0)
$ echo "ten
car
something
plane
stack
overflow" | while read -r line || [[ -n "$line" ]]; do echo "${#line} ${line}"; done | sort -r -k 1,2 | cut -d ' ' -f 2
something
overflow
stack
plane
ten
car
$