"column -t"와 같은 명령이지만 인코딩 유형과 무관합니까? [폐쇄]

"column -t"와 같은 명령이지만 인코딩 유형과 무관합니까? [폐쇄]

column -t본질적으로 저는 Linux에서 이 명령의 인코딩에 구애받지 않는 버전을 찾고 있습니다 .

구분된 파일을 플랫 파일로 변환한 다음 출력 파일에 써야 합니다. 정확한 구분 기호는 다양합니다(, | \t).

항상 그런 것은 아니지만 필드에 발음 구별 부호가 있는 텍스트 문자가 포함되는 경우도 있습니다. column -tUTF-8 인코딩 유형과만 호환되므로 다음과 같은 "재미있는" 문자로 인해 질식하게 됩니다 .

file -biUTF-8로 다시 인코딩할 수 있도록 인코딩 유형 결정과 같은 명령을 사용해 보았지만 "최선의 추측"만 제공합니다(발음 부호가 100,000행에서 시작하면 실패함).

지금까지 나는 다음과 같은 일을 겪었습니다.

이 스크립트는 awk구분된 열을 고정 길이 열로 변환하지만 가변 열 너비가 필요합니다.

$ awk -F@ '{for(i=1;i<=NF;i++){printf "%-20s", $i};printf "\n"}' input.csv

이 스크립트는 perl각 열의 최대 길이를 찾아 각 열을 최대 길이로 설정하지만 가변 개수의 열도 필요합니다.

perl -F'\t' -lane '
BEGIN {
    open I, "< inputfile";
    for (<I>) {
        chomp;
        @x = split /\t/;
        (length ($x[0]) > $f0) && ($f0 = length ($x[0]) + 1);
        (length ($x[1]) > $f1) && ($f1 = length ($x[1]) + 1);
        (length ($x[2]) > $f2) && ($f2 = length ($x[2]) + 1);
    }
    close I;
}
print "$F[0]" . " " x ($f0 - length ($F[0])), "$F[1]" . " " x ($f1 - length     ($F[1])), "$F[2]" . " " x ($f2 - length ($F[2]));
' inputfile

누구든지 다음에 대한 스크립트를 가지고 있습니까?

  • 쉘에서 실행 가능

  • 기능 column -t(다양한 열 너비 처리, 다양한 수의 열 처리, 구분 기호 지정 허용)

  • AND는 인코딩 유형과 무관합니까?

관련 정보