Comm: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
태그: 구식 태그
편집 요약 없음
1번째 줄:
{{소문자}}
[[유닉스]]에서 '''<ttcode>comm</ttcode>''' 명령어는 일반적이고 뚜렷한 문자열들을 위해서 두 개의 [[컴퓨터 파일|파일들]]을 비교하기 위해서 사용되는 유틸리티이다. <ttcode>Comm</ttcode>은 [[POSIX]] 표준 안에서 지정된다. 이는 1980년 중반부터 후반까지 [[유닉스 계통]] 시스템에서 폭넓게 사용되고 있다..<!-- Case Larsen BSD 1989 (OpenBSD에서 찾음), Richard Stallman and David MacKenzie Gnu 1986 -->
== 사용법 ==
 
<ttcode>comm</ttcode>은 텍스트의 문자열들에는 상관없이 두 파일들을 입력물로서 읽는다.<ttcode>comm</ttcode>은 하나의 파일을 출력하는데, 이는 세 개의 열들을 포함한다. 첫 번째 두 열들은 첫 번째와 두 번째 파일과 같은 문자열들을 각각 포함한다. 마지막 열은 두 개의 파일들에 일반적인 문자열들을 포함한다. 이는 기능적으로 <ttcode>[[diff]]</ttcode>와 비슷하다.
 
열들은 일반적으로 <ttcode>''<nowiki><tab></nowiki>''</ttcode> 문자에 의해서 구분된다. 만약 입력되는 파일들이 구분자 문자로 시작되는 문자열들을 포함한다면, 출력되는 열들은 모호하게 될 수도 있다.
 
효율성을 위해서 <ttcode>comm</ttcode>의 표준 실행은 두 개의 입력된 파일들이 같은 문자열 콜래이션 순서로 정열되기를 기대한다. [[sort (유닉스)]] 명령어는 이러한 목적으로 사용될 수 있다.
 
<ttcode>comm</ttcode> 알리고리즘은 현재 장소의 콜래이션 순서를 사용한다. 만약 파일 안의 문자열들이 현재 장소에 따라서 둘이 서로 순서가 맞지 않는다면, 그 결과는 정의될 수 없다.
 
== 리턴 코드 ==
 
<ttcode>diff</ttcode>와는 달리, <ttcode>comm</ttcode>로부터의 리턴 코드는 두 개의 파일들의 관계를 고려한, 어떠한 논리적인 중요성도 갖지 않는다. 0이라는 리턴코드는 성공을 의미하고, >0이라는 리턴 코드는 실행 중에 발생한 에러를 나타낸다.
 
== 예시 ==
60번째 줄:
== diff와의 비교 ==
 
In general terms, <ttcode>diff</ttcode> is a more powerful utility than <ttcode>comm</ttcode>. The simpler <ttcode>comm</ttcode> is best suited for use in scripts.
일반적인 관점에서 <ttcode>diff</ttcode>은 <ttcode>comm</ttcode>보다 훨씬 강력한 유틸리티이다. 더 단순한 <ttcode>comm</ttcode>은 스크립트 안의 사용에 최적이다.
 
<ttcode>comm</ttcode>와 <ttcode>diff</ttcode> 사이의 중요한 차이점은 <ttcode>comm</ttcode>가 분류하기 이전의 문자열 순서에 대한 정보를 폐기한다는 것이다.
 
<ttcode>comm</ttcode>와 <ttcode>diff</ttcode>의 사이의 사소한 차이점은 <ttcode>comm</ttcode>이 두 개의 파일들 사이의 "변화된" 문자열을 표시하려고 하지 않는다는 점이다; 문자열이 "file #1로부터", "file #2로부터", 이나 "두 개 파일" 열들 안에 표시될 수 있다. 비록 그 차이가 미묘할지라도 두 개의 문자열들이 다르게 구분되기를 바란다면 이는 유용할 수 있다.
 
== 다른 옵션들 ==
 
'''<ttcode>comm</ttcode>'''은 세 개의 열 중 아무거나 억누를 수 있는 옵션들을 갖는다. 이는 스크립팅하는데 있어서 유용하다.
 
표준 입력물로부터 하나의 파일(두 개의 파일은 아님)을 읽는 옵션이 있다.
77번째 줄:
다음 출력어가 쓰여지기 전까지 문자열을 비교하는 동안, 전체 입력어까지는 각각의 입력된 파일들로부터 반드시 버퍼링되어야 한다.
 
어떤 실행들은 만약 시스템 메모리가 충분하다면 문자열 길이에 제약을 가하지 않는 <ttcode>readlinebuffer()</ttcode> 기능으로 문자열을 읽는다.
 
다른 실행들은 <ttcode>[[fgets|fgets()]]</ttcode> 기능으로 문자열들을 읽는다. 이 기능은 고정된 버퍼를 필요로 한다. 이러한 실행들에 있어서, 버퍼는 종종 [[POSIX]] macro <ttcode>LINE_MAX</ttcode>에 따라서 크기가 주어진다.
 
== 함께 보기 ==