텍스트 파일에서 고유 값을 정렬하는 방법은 무엇입니까? [복사]

텍스트 파일에서 고유 값을 정렬하는 방법은 무엇입니까? [복사]

다음과 같은 텍스트 파일이 있습니다.

A f1
B f2
A f3
B f4
B f5

첫 번째 열 값을 기준으로 정렬하여 별도의 파일에 저장하고 싶습니다.

원하는 출력:

A.txt:

A f1 
A f3

B.txt:

B f2
B f4
B f5

시도했지만 uniq작동하지 않습니다. 편집: txt 파일과 출력 파일을 원하는 방식으로 게시할 수 없지만 다음 줄에 있어야 합니다.

답변1

대부분의 경우 간단히 다음을 수행할 수 있습니다.

awk '{print > $1 ".txt"}' file

답변2

필요한 것은 uniq가 아니라 awk뿐입니다.

awk ' $1 == "A" { print }' $file > something.txt` #This will print all A's

awk ' $1 == "B" { print }' $file > something.txt` #This will print all B's.

참고: $file입력 로그의 이름이 됩니다.

편집: 내 원래 답변은 제공된 데이터를 기반으로 했습니다. 지금 업데이트했습니다. 따라서 내 원래 "필요한 것은 grep뿐입니다."는 더 이상 작동하지 않고 "awk"로 변경되었습니다.

답변3

짧은 awk 스크립트가 작업을 수행합니다.

sort file | awk '
  $1 != prev {prev = $1; if (out) close(out); out = $1 ".txt"}
  {print > out}
'

close()"열린 파일이 너무 많습니다" 오류를 방지하기 위해 추가되었습니다 .

관련 정보