최상위 패턴을 제외하고 sed에서 일치하는 모든 패턴을 제거하는 방법은 무엇입니까? [복사]

최상위 패턴을 제외하고 sed에서 일치하는 모든 패턴을 제거하는 방법은 무엇입니까? [복사]

파일.txt

1.1.1.1 abc 
1.1.1.1 ccc
1.2.2.2 ddd
1.2.2.2 qqq
1.2.2.2 zzz

예상되는 결과:

1.1.1.1 abc
1.2.2.2 ddd

나는 시도했다:

sed -i '/1.1.1.1/d' file.txt 

sed -i '/2.2.2.2/d' file.txt 

하지만 1개의 결과를 남기지 않고 모든 결과를 삭제합니다. 일치하는 패턴을 모두 제거하고 1을 남겨 두는 방법은 무엇입니까?

답변1

sort이 옵션을 사용하여 --unique원하는 것을 얻을 수 있습니다.

$ sort --unique --key=1,1 file.txt
1.1.1.1 abc
1.2.2.2 ddd

아니면 간단히 말해서

sort -uk1,1 file.txt

--unique옵션은 동일한 필드가 있는 처리된 행을 억제하고 --key=1,1첫 번째 필드를 정렬 키(시작그리고끝 위치).

관련 정보