답변:
정렬을 위해 man 페이지를 들여다보십시오 ...
-n, --numeric-sort compare according to string numerical value
여기에 예가 있습니다 ...
sort -n filename
-g, --general-numeric-sort
하는 것이 더 바람직 할 수 있습니다. 이것은 더 과학적 표기법 예를 들어 1.234E10 등을 할 수 있습니다
예를 들어 롤링 로그의 파일 이름과 같이 텍스트와 숫자가 혼합 된 문자열을 정렬하는 경우 정렬이 sort -n
예상대로 작동하지 않습니다.
$ ls |sort -n
output.log.1
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.2
output.log.20
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
이 경우 옵션 -V
이 트릭을 수행합니다.
$ ls |sort -V
output.log.1
output.log.2
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.20
맨 페이지에서 :
-V, --version-sort natural sort of (version) numbers within text
ls
스루 sed
대체를 파이핑 할 때도 색상 출력이 사물에 영향을 미친다는 것입니다. 그래서 달리기 ls --color=never
도 차이를 만들었습니다.
-V
정확히 제가 찾던 것입니다. 맨 페이지를 먼저 살펴 보는 습관을 들이자.
여기에있는 대부분의 다른 답변은
sort -n
그러나 이것이 음수에 대해 작동하는지 확실하지 않습니다. 다음은 Fedora 9에서 정렬 버전 6.10으로 얻은 결과입니다.
입력 파일:
-0.907928466796875
-0.61614990234375
1.135406494140625
0.48614501953125
-0.4140167236328125
산출:
-0.4140167236328125
0.48614501953125
-0.61614990234375
-0.907928466796875
1.135406494140625
분명히 숫자 값으로 정렬되지 않았습니다.
그렇다면 더 정확한 대답은 sort -n
모든 값이 양수인 경우에만 사용하는 것이라고 생각합니다 .
추신 :을 사용하면 sort -g
이 예에서 동일한 결과가 반환됩니다 .
편집하다:
로케일 설정이 빼기 기호가 순서에 영향을 미치는 방식에 영향을 미치는 것 같습니다 ( 여기 참조 ). 적절한 결과를 얻기 위해 방금했습니다.
LC_ALL=C sort -n filename.txt
사용 sort -n
또는 sort --numeric-sort
.
echo " Enter any values to sorting: "
read n
i=0;
t=0;
echo " Enter the n value: "
for(( i=0;i<n;i++ ))
do
read s[$i]
done
for(( i=0;i<n;i++ ))
do
for(( j=i+1;j<n;j++ ))
do
if [ ${s[$i]} -gt ${s[$j]} ]
then
t=${s[$i]}
s[$i]=${s[$j]}
s[$j]=$t
fi
done
done
for(( i=0;i<n;i++ ))
do
echo " ${s[$i]} "
done