[英]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.