VIM에서 중복되는 라인 없애기
스프레드 시트에 아래와 같은 단어 목록이 있는데(예시임), 이를 yml array로 표현해야 할 일이 있었다.
(실제 단어 목록은 비속어 필터링에 쓰이는 단어들이라 바꿨다)
이왕 하는 김에 홍길동
이나 고양이
와 같은 중복되는 단어를 없애고 싶었다.
홍길동
강아지
북극곰
홍길동
임꺽정
고양이
고양이
평소엔 yml 생성은 ruby를 자주 이용하는데 vim 에디터로도 충분히 가능할 것 같아 좀 찾아보니 매우 편한 커맨드가 있었다.
block으로 범위를 지정한 후 :sort u
를 입력하면 아래와 같이 바뀐다.
강아지
고양이
북극곰
임꺽정
홍길동
중복제거는 물론 정렬까지 해주니 상당히 편리하다.
하는 김에 yml 배열을 표현해주기 위해 범위지정을 한 후 :s/.*/- "\0"
로 모든 라인을 replace 해 주었다.
(실제 데이터에는 숫자로만 이루어진 라인도 있는데 모두 string으로 표현하기 위해서 따옴표로 감쌌다)
- "강아지"
- "고양이"
- "북극곰"
- "임꺽정"
- "홍길동"