다음과 같이 탭으로 구분된 파일이 있습니다.
123 some text
123 some different text
334 some other text
341 more text
저는 두 가지 일을 하고 싶습니다. 하나는 모든 것을 숫자별로 정렬하는 것이고(쉽게 수행할 수 있음), 다른 하나는 숫자가 이미 있는 경우 행을 삭제하는 것입니다. 즉, 출력은 다음과 같습니다.
123 some text
334 some other text
341 more text
고유한 숫자만 포함된 파일을 얻으려고 합니다.
123
334
341
원본 파일과 연결합니다.
join -j 1 justNumbers.txt original.txt
하지만 이것은 나에게 원본 파일을 제공합니다. 어떤 아이디어가 있나요?
답변1
고유성을 정렬/테스트하려는 경우첫 번째특히 귀하의 시스템에는 GNU coreutils
버전이 있으므로 sort
다음을 사용할 수 있다고 생각합니다.
sort -nu file
지금 바로.
$ sort -nu file
123 some text
334 some other text
341 more text
~에서info coreutils 'sort invocation'
명령
sort -u
과sort | uniq
동일하지만 이 동등성은 임의의sort
옵션으로 확장되지 않습니다. 예를 들어sort -n -u
고유성을 확인할 때 초기 숫자 문자열의 값만 확인합니다.,sort -n | uniq
전체 생산 라인을 검사하면서.
답변2
이 시도 awk
:
awk '!($1 in a){a[$1];print}' file
123 some text
334 some other text
341 more text
이는 파일이 정렬되어 있다고 가정합니다.