쉼표로 구분 된 단어를 기준으로 정렬


11

일반 명령 : 정렬은 열 또는 가상 열 ( \%c또는 \%v)을 기준으로 행을 정렬 할 수 있습니다 . 상위 논리 열을 정렬 키로 사용할 수 있습니까? 이 시나리오에서는 정규식을 사용하는 것이 약간 복잡해 보이며 (열이 줄 끝입니까?) 정렬 유틸리티의 기능과 유사 sork -k하지만 ( )이 기능을 사용한 정렬은 Windows에서 사용할 수 없습니다. Vim 플러그인도 도움이 될 것입니다.

예를 들어 쉼표로 구분 된 마지막 열에 따라 아래 두 줄을 정렬하고 싶습니다. 내 실제 시나리오에는 훨씬 더 많은 열과 문자열 패턴이 있습니다. 열 구분자를 지정하면 크게 단순화됩니다.

xxx,yyy,zzz,0x123
zzxz,xxxx,yyyy,0x121

답변:


11

Vim의 정렬을 사용하면을 건너 뛰 {pattern}거나 고려할 수 있습니다 ( r플래그 포함). 마지막 쉼표로 구분 된 열에 대한 정규식은 공식화하기 쉽습니다. 마지막 쉼표를 포함하여 줄의 모든 것을 생략하십시오.

:sort/.*,/

다른 열의 경우 r플래그를 사용하고 다음을 2통해 N (여기 :) 이전 열을 건너 뜁니다 \zs.

:sort/\([^,]*,\)\{2}\zs[^,]*/

1
마지막 열은 16 진수이므로 x플래그를 사용하면 도움이 될 수 있습니다.
jecxjo

멋지다. 마지막 열은 특별한 경우 일 수 있습니다. 가운데 열에 대한 간단한 표현이 있습니까?
Thomson

나는 당신이 그것에 대해 무언가를 생각 해낼 수 있다고 생각했지만 여기 있습니다. 옆에있는 체크 표시를 클릭하여 내 (편집 된) 답변을 수락하십시오. 감사!
Ingo Karkat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.