절단 후 파일 크기

절단 후 파일 크기

대용량 파일이 여러 부분으로 올바르게 분할되었는지 확인하려고 합니다. 장난감 예로 다음과 같은 파일이 있습니다 out_sample.

123456789012
123456789012
123456789012
123456789012
123456789012

저장되면 64바이트가 됩니다. cut을 사용하여 파일을 6개의 청크로 분할하면 결과 파일은 각각 15바이트입니다.

#!/bin/sh
FILENAME="out_sample"
cut -c1-2 $FILENAME > a
cut -c3-4 $FILENAME > b
cut -c5-6 $FILENAME > c
cut -c7-8 $FILENAME > d
cut -c9-10 $FILENAME > e
cut -c11-12 $FILENAME > f

총계는 6*15=90바이트를 의미합니다. 원래 파일 크기와 새 파일 크기의 합 사이에 26바이트의 차이는 무엇입니까? cut파일 끝에 개행 문자가 추가된 것을 확인했습니다 . 파일당 1바이트일까요? 나머지는 어떻습니까?

답변1

파일에서 2개의 열을 잘라내면 cut각 줄에 개행 문자가 추가됩니다. 따라서 각 출력 파일은 5줄로 구성되며 각 줄에는 2개의 숫자와 개행 문자가 있습니다.
이는 25개의 추가 바이트(파일 1~5, 여섯 번째 파일은 열 13(입력 파일의 줄 바꿈)을 제거하여 삭제한 줄 바꿈만 추가함)에 대해 설명합니다.
마지막 바이트는 어디에서 오는가? 입력 파일의 마지막 줄에 개행을 강제로 적용하지 않는 편집기를 사용하고 있다고 가정합니다.

따라서 아무것도 손실되지 않습니다.

답변2

split이 응용 프로그램의 경우 대신 사용할 수 있습니다 cut. split -b 15 $FILENAME파일 오프셋을 직접 계산하는 대신 자동으로 장부를 수행합니다.

편집: 질문을 잘못 읽었습니다. split명령은 바이트 스트림의 청크처럼 열로 분할되지 않습니다. 정말로 열 단위로 원한다면 OP의 접근 방식이 가장 좋습니다.

관련 정보