정렬에서 k 전후의 r 위치

정렬에서 k 전후의 r 위치

CSV 파일을 정렬하기 위해 다음 두 스크립트를 시도했습니다.

$ sort -t"," -k1,1 -k3,3 -k4,4 -k6,6r myFile.csv 

그리고

$ sort -t"," -k1,1 -k3,3 -k4,4 -rk6,6 myFile.csv 

거기서 찾았어-아르 자형전에-케이여섯 번째 열뿐만 아니라 첫 번째 열도 반전시키면서-아르 자형뒤쪽에케이열 6만 반전됩니다. 한편으로는 우리가 왜 넣었는지 이해가 안 돼요.-아르 자형이전과 이후-케이차이를 만들다. 게다가 설명도 못찾겠다돕다또는남성.

답변1

-rk6,6이 옵션을 사용하면 -r전역적으로, 즉 모든 키에 적용됩니다. 이는 다음과 같습니다.

sort -t"," -r -k1,1 -k3,3 -k4,4 -k6,6 myFile.csv 

반면에 여섯 번째 필드 만 -k6,6r적용됩니다 . 즉, 단독으로 적용됩니다.r

답변2

~처럼맨페이지설명하다:

Sort keys can be specified using the options:

-k  keydef
      The keydef argument is a restricted sort key  field  definition.
      The format of this definition is:

      field_start[type][,field_end[type]]

where  field_start  and  field_end  define  a key field restricted to a
portion of the line (see the EXTENDED DESCRIPTION section), and type is
a  modifier  from  the list of characters 'b' , 'd' , 'f' , 'i' , 'n' ,
'r' .

-k제한된정의. 나중에 지정하는 옵션은 -k이 필드 정의에만 적용됩니다. -r반면에 이는 글로벌 선택입니다. 맨페이지를 다시 인용하면 다음과 같습니다.

The following options shall override the default ordering  rules.  When
ordering  options  appear  independent of any key field specifications,
the requested field ordering rules shall be  applied  globally  to  all
sort  keys.  When  attached  to  a specific key (see -k), the specified
ordering options shall override all global ordering  options  for  that
key.

관련 정보