형식 변경 및 개수 정렬

형식 변경 및 개수 정렬

형식을 변경하고 싶습니다.

보낸 사람: 샘플.txt

   Count   Data
   1 C0263/Pre-approved Auto Load BC
   1 C0263/Pre-approved Auto Load BC Holders
   3 C0268/Pre-approved Auto Loan

받는 사람:output.txt

   Data                                       Count
   C0263/Pre-approved Auto Load BC            1
   C0263/Pre-approved Auto BC Holders         1
   C0268/Pre-approved Auto Loan               3

답변1

해결책:

awk 'NR==1{ printf "%4s%-44s%s\n",FS,$2,$1; next }
     { f1=$1; sub(/^ *[^ ]+ */,""); printf "%4s%-44s%s\n",FS,$0,f1 }' Sample.txt

산출:

    Data                                        Count
    C0263/Pre-approved Auto Load BC             1
    C0263/Pre-approved Auto Load BC Holders     1
    C0268/Pre-approved Auto Loan                3

답변2

입력 데이터가 파일에 있고 datafile.txtPOSIX 쉘을 사용한다고 가정하면 다음과 같이 말할 수 있습니다.

sed -e 's/^\s*//' -e 's/\s\+/:/' datafile.txt | while IFS=':' read a b; do
  printf '%-30.29s%s\n' "$b" "$a"
done

sed명령은 (1) 모든 선행 공백을 제거한 다음 (2) 하나 이상의 공백이 처음 나타나는 것을 콜론으로 바꿉니다. 결과는 while콜론으로 구분된 두 필드를 읽는 루프로 파이프된 다음 멋지게 인쇄됩니다.

입력 데이터가 파이프에서 나오는 경우 매개변수를 제거 datafile.txt하고 sed.

관련 정보