gpt4 book ai didi

linux - 不使用 awk 或 sed 对字符串进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:00 25 4
gpt4 key购买 nike

大家好,我的课上有一个家庭作业,其中一部分是按长度对字符串列表进行排序。

我们不能使用awksed,只能使用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"
}

最佳答案

$ 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
$

关于linux - 不使用 awk 或 sed 对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36911423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com