내 데이터에는 다음과 같은 데이터가 있습니다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 요소를 인쇄합니다.