필드의 숫자 값을 기준으로 파일을 정렬하려면 어떻게 해야 합니까?
예file.txt
:
100 foo
2 bar
300 tuu
사용시sort -k 1,1 file.txt
행의 순서는 변경되지 않습니다.다만, 다음과 같이 상정되고 있습니다.
2 bar
100 foo
300 tuu
절대 수치를 기준으로 숫자로 구성된 필드를 정렬하려면 어떻게 해야 합니까?
man 페이지를 살짝 들여다보면...
-n, --numeric-sort compare according to string numerical value
여기 예가 있습니다.
sort -n filename
텍스트와 숫자가 혼재된 문자열을 정렬하는 경우(예를 들어 롤링 로그의 파일 이름 등)로 정렬합니다.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
man 페이지부터:
-V, --version-sort natural sort of (version) numbers within text
여기 있는 대부분의 다른 답변은
sort -n
하지만, 나는 이것이 음수에 효과가 있는지 잘 모르겠다.다음은 Fedora 9의 Sort 버전 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 -k 1,1 File.txt
사용하다sort -n
또는sort --numeric-sort
.
다음 명령을 수행해야 합니다.
sort -n -k1 filename
이것으로 충분합니다. :)
내림차순으로 정렬하려면 sort -nr을 사용합니다.참조하다
자세한 내용은 위의 Man 페이지를 참조하십시오.
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
언급URL : https://stackoverflow.com/questions/4856030/how-to-sort-a-file-based-on-its-numerical-values-for-a-field
'programing' 카테고리의 다른 글
특정 행에서 아래로 열을 요약합니다. (0) | 2023.04.23 |
---|---|
Azure Web 작업 vs 스케줄러 (0) | 2023.04.23 |
" " " 를 할 때 합니다." " " 를 할 때 합니다." " " 를 할 때 합니다. (0) | 2023.04.23 |
ASP에서 비동기 컨트롤러를 사용해야 하는 경우NET MVC? (0) | 2023.04.23 |
CanExecute가 처음 호출될 때 WPF CommandParameter는 NULL입니다. (0) | 2023.04.23 |