레코드 끝에 줄 바꿈을하지 않은 프로그램으로 생성 된 파일이 있습니다. 레코드 사이에 줄 바꿈을 넣고 싶습니다. 간단한 sed 스크립트로 할 수 있습니다.
sed -e 's/}{/}\n{/g'
문제는 입력 파일의 크기가 수 기가 바이트이므로 sed의 입력 행 길이가 여러 GB라는 것입니다. sed는 메모리에 줄을 유지하려고 시도하지만이 경우 작동하지 않습니다. --unbuffered
옵션을 사용해 보았지만 속도가 느려지고 올바르게 완료되지 않았습니다.
tr
번역 }
으로 \n
사용 다음과 sed
을 추가 할 }
각 줄의 끝에서? 이처럼 :tr '}' '\n' < your_file.txt| sed 's/$/}/'
printf "\n" >> file
}{
몇 기가 바이트가 충분할 때까지 반복하여 작성한다고 가정 합니다.
dd if=file cbs=80 conv=unblock
그렇게되지만 그렇게 간단하지는 않습니다.