유닉스/리눅스 - 파일 형식

유닉스/리눅스 - 파일 형식

고정 너비 파일로 형식을 지정해야 하는 소스 파일이 있습니다.

소스 파일 형식:

Hdr1 
Dtl1.1
Dtl1.2
Dtl1.3
Dtl1.4
Trailer0004
Hdr2
Dtl2.1
Dtl2.2
Dtl2.3
Dtl2.4
Dtl2.5
Trailer0005
.
.
.
.

HdrN
DtlN.1
DtlN.2
DtlN.3
Trailer0003

다음으로 변환해야 합니다.

Hdr1 Dtl1.1 Dtl1.2 Dtl1.3 Dtl1.4
Hdr2 Dtl2.1 Dtl2.2 Dtl2.3 Dtl2.4 DTL 2.5
.
.
.
.
HdrN DtlN.1 DtlN.2 DtlN.3 DtlN.4

답변1

그리고 perl:

perl -n -e 'if (m/^Trailer/) {print "\n"} else {chomp; print $_," "}' arun.txt

산출:

Hdr1 Dtl1.1 Dtl1.2 Dtl1.3 Dtl1.4 
Hdr2 Dtl2.1 Dtl2.2 Dtl2.3 Dtl2.4 Dtl2.5 
HdrN DtlN.1 DtlN.2 DtlN.3 

참고: 각 출력 줄에는 후행 공백 문자가 있습니다. 이런 일이 발생하지 않도록 하려면 출력을 파이프하여 제거하세요 sed -e 's/ $//'. 또는 다음 버전의 스크립트를 대신 사용하세요.

perl -n -e 'if (m/^Trailer/) {
                print join(" ",@line),"\n";
                @line=();
            } else {
                chomp;
                push @line,$_;
            }' arun.txt

관련 정보