繁体   English   中英

使用带空格的排序作为字段分隔符

[英]Using sort with space as a field separator

我正在尝试使用sort命令对以空格分隔的字符串中的整数进行排序。 例如8 6 5 7 9 56 -20 - 10 我在标准输出上收到了字符串。 我尝试了所有这些,但没有任何效果:

sort -t' '
sort -t ' '
sort -t " "
sort -t" "
sort -t=" "

您可以先将字符串读入以空格作为定界符的数组,然后将sort与进程替换一起使用:

s='8 6 5 7 9 56 -20 - 10'
read -ra arr <<< "$s"
sort -n <(printf "%s\n" "${arr[@]}")

输出:

-20
-10
5
6
7
8
9
56

再次将输出存储在字符串中:

read -r str < <(sort -n <(printf "%s\n" "${arr[@]}") | tr '\n' ' ')

并检查输出:

declare -p str
declare -- str="-20 -10 5 6 7 8 9 56"
echo "8 6 5 7 9 56 -20 - 10" | tr ' ' '\n' | sort -n

排序只能对行进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM