UNIX 스크립트에서 고정 길이 레코드의 나머지 부분에 공백을 추가합니다.

UNIX 스크립트에서 고정 길이 레코드의 나머지 부분에 공백을 추가합니다.

250자 길이(고정)의 레코드에 약 40자 정도의 데이터가 있습니다. 하지만 나머지 250-40=210자를 공백으로 추가하고 싶습니다. UNIX 스크립트에서는 이를 어떻게 수행합니까?

답변1

사용 awk:

awk '{ printf "%-250s\n", $0 }' infile >outfile

%-250s여기에 사용된 형식 문자열은 printf매개변수 $0(현재 행)를 250자 길이의 문자열로 형식화합니다. 이 250자 내에서 원래 줄은 왼쪽 정렬되고 입력 줄의 비어 있는 비트는 250자리를 채우기 위해 공백으로 채워집니다.

입력 라인의 길이가 250자를 초과하면 입력 라인이 출력에서 ​​수정되지 않은 채 재생산됩니다. 250자로 너무 긴 줄을 자르려면 위 코드에서 substr($0,1,250)in을 사용하세요 $0.

관련 정보