我想要的是如果我输入任何以空格分隔的数字,它将按升序排序。我在bash创建的文件中有这个。
re='^[0-9]+$'
if ! [[ $1 =~ $re ]] ; then
echo "error: Not a number" >&2; exit 1
else
printf "%s\n" $@ | sort -n
fi
基本上上面的id是如果用户输入非数字,它将显示错误,否则将对数字进行排序。
所以如果我输入命令:$:sh sort.sh 12 0 13.这将命令
0
12
13
现在我的问题是我不希望它在一个新行中,而是我想在一个空格中。
答案 0 :(得分:1)
sort
是基于行的工具,因此您无法在调用之前删除换行符。但是,您可以在数据排序后用空格替换它们,例如使用tr
:
re='^[0-9]+$'
if ! [[ $1 =~ $re ]] ; then
echo "error: Not a number" >&2; exit 1
else
printf "%s\n" $@ | sort -n | tr '\n' ' '
fi