如何在 linux bash shell 中对字符串数组进行排序?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30881346/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 13:12:40  来源:igfitidea点击:

How can I sort the string array in linux bash shell?

linuxbashshell

提问by liam xu

For instance, the array is

例如,数组是

link2_pathname
link1_pathname
link3_pathname

How can I get the array like below.

我怎样才能得到如下所示的数组。

link1_pathname
link2_pathname
link3_pathname

Thanks a lot in advance!

非常感谢!

回答by Marc Bredt

pipe a loop to sort.

管道循环到sort.

a=(l2 l3 l1)
b=($(for l in ${a[@]}; do echo $l; done | sort))

you probably need to watch out for the IFS when handling string values containing spaces.

在处理包含空格的字符串值时,您可能需要注意 IFS。

回答by Dan

try this

尝试这个

var=( link2_pathname link1_pathname link3_pathname )

for arr in "${var[@]}"
do
    echo $arr
done | sort

new_var=( $(for arr in "${var[@]}" 
do
        echo $arr
done | sort) )