column -t
본질적으로 저는 Linux에서 이 명령의 인코딩에 구애받지 않는 버전을 찾고 있습니다 .
구분된 파일을 플랫 파일로 변환한 다음 출력 파일에 써야 합니다. 정확한 구분 기호는 다양합니다(, | \t).
항상 그런 것은 아니지만 필드에 발음 구별 부호가 있는 텍스트 문자가 포함되는 경우도 있습니다. column -t
UTF-8 인코딩 유형과만 호환되므로 다음과 같은 "재미있는" 문자로 인해 질식하게 됩니다 .
file -bi
UTF-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는 인코딩 유형과 무관합니까?