결과

결과

내 데이터에는 다음과 같은 데이터가 있습니다file

alice bob cathy david elon
unix linux bsd

나는 출력을 원한다마지막 N 인스턴스만배열 구분 기호 (예: 공백)

그림마지막 인스턴스구분 기호 (공백)

alice bob cathy david     elon
unix linux                bsd

또는두 번째 인스턴스구분 기호 (공백)

alice bob cathy     david elon
unix                linux bsd

답변1

데이터가 다음으로 구분되는 경우 ::

perl -F'[:]' -lane '
   push @e, join $", splice @F, -1;
   push @A, join $", @F;
   length($A[-1]) > $maxW and $maxW = length($A[-1])}{
   print $_, $" x ($maxW - length), "\t", shift @e for @A;
' file

결과

alice bob cathy david   elon
unix linux              bsd

마지막 2개 요소를 분리하려면 -1매개변수 목록을 다음과 같이 변경하세요. 결과는 다음과 같습니다.splice-2


alice bob cathy david elon
unix            linux bsd

설명하다

  • @e각 행의 마지막 N 요소를 보유하는 배열을 유지합니다.
  • @A현재 행에서 마지막 N개 요소를 제거한 후 각 행을 보유하는 배열을 유지합니다.
  • 우리는 이러한 트림 라인의 최대 너비를 결정합니다.
  • 모든 줄을 읽은 후 잘린 줄의 길이가 동일하도록(오른쪽 패딩 공백 뒤) + TAB + 마지막 N 요소를 인쇄합니다.

관련 정보