sort
옵션에 대한 매뉴얼 페이지는 -u
다음과 같이 말합니다.
를 사용하면
-c
엄격한 순서를 확인하고 를 사용하지 않으면-c
첫 번째 동일 실행만 출력합니다.
누군가 이것을 기본적인 영어로 번역하는 것을 도와줄 수 있나요? 이 -uc
옵션은 -c
.
답변1
엄격한 순서는 값이 반복될 수 없음을 의미합니다. 출력 비교
printf "%s\n" 1 2 3 4 4 | sort -uc
그것으로
printf "%s\n" 1 2 3 4 4 | sort -c
답변2
옵션을 사용하면 다른 옵션을 고려하여 입력 데이터가 올바른 정렬인지 확인 됩니다 -c
. 정렬을 수행하지 않습니다. 일부 구현에서는 다음 과 같이 작성할 수 있습니다 .sort
sort
sort
-c
--check
따라서 sort -u -c
데이터를 검사하여 데이터가 정렬되어 있고 중복된 항목이 포함되어 있는지 알려줍니다. 정렬되어 있고 중복 항목이 없으면 아무것도 표시되지 않지만, 중복 항목이 있거나 데이터가 정렬되지 않은 경우 진단 메시지가 생성되고 0이 아닌 종료 상태로 종료됩니다.
다음과 같은 방법으로 사용할 수 있습니다.
if sort -uC file; then
echo 'file is sorted and contains no duplicate entries'
else
echo 'file is unsorted or contains duplicate entries'
fi
이 -C
옵션은 동일한 작업을 수행 -c
하지만 sort
출력 생성을 중지합니다. 때로는 또는 로 -C
쓸 수도 있습니다 .--check=quiet
--check=silent
답변3
확장 분류 매뉴얼( info coreutils 'sort invocation'
)에 설명된 내용은 다음과 같습니다.
' - 고유한'
일반적으로 동일하다고 비교되는 일련의 행 중 첫 번째 행만 출력됩니다. --check(-c 또는 -C) 옵션을 사용하면 연속된 행 쌍이 동일하지 않은지 확인합니다.
즉, -c
(확인)과 -u
(고유)를 결합하면 논리적으로 입력에 중복이 있는지 확인됩니다.
예를 들어:
%echo -e "a\na\nb\nc"| sort -c && echo OK
OK
%echo -e "a\na\nb\nc"| sort -uc && echo OK
sort: -:2: disorder: a
입력이 정렬(a->a->b->c)되었으나 중복이 있어 -uc
실패합니다.