ed에서 배치되지 않은 두 개의 중복 행을 삭제하는 방법이 있습니까?

ed에서 배치되지 않은 두 개의 중복 행을 삭제하는 방법이 있습니까?

예를 들어 ed에서 배치되지 않은 중복 행을 제거하는 방법을 찾고 있습니다.

ed is a terminal editor
sam is a bitmap editor
emacs is a macro editor
ed is a terminal editor

나는 다음을 생산할 수 있기를 원합니다:

ed is a terminal editor
sam is a bitmap editor
emacs is a macro editor

답변1

이것은또 다른 경우외부 도구를 호출하여 작업을 수행한 다음 도구의 출력을 편집하는 것이 더 쉽습니다.

$ed 파일
95
,N
1 ed는 터미널 편집기입니다.
2 sam은 비트맵 편집기입니다
3 emacs는 매크로 편집기입니다
4 ed는 터미널 편집기입니다.
e !awk '!seen[$0]++' %
awk '!seen[$0]++' 파일
71
,N
1 ed는 터미널 편집기입니다.
2 sam은 비트맵 편집기입니다
3 emacs는 매크로 편집기입니다

awk여기서 호출되는 명령은 e !이전에 본 적이 없는 라인을 출력하고, 이미 본 라인은 무시합니다. awk이 사이트의 많은 답변에서 이러한 특정 사용법의 예를 찾을 수 있습니다 (예:여기, 설명과 함께여기).

관련 정보