페이지 나누기 뒤에 $ LINE을 추가해야하는 텍스트 파일이 있습니다. 예를 들어, 텍스트 파일에서
이것은 제가 여기 앉아있는 임의의 텍스트 파일이며이 예제를 위해 공간을 채우기 위해 작성하고 있습니다. 이 텍스트의 내용은 관련이 없으며 내가 묻는 질문의 의미를 보여줄뿐입니다. 다시 한 번, 나는 공간을 채우기 위해 글을 쓰고 있습니다.
나는 그것을 바꾸고 싶다.
$ LINE 이것은 제가 여기 앉아있는 임의의 텍스트 파일이며이 예제를 위해 공간을 채우기 위해 작성하고 있습니다.
$ LINE이 텍스트의 내용은 무관합니다
$ LINE은 내가 묻는 질문의 의미를 보여줄뿐입니다.
$ LINE 한 번 더, 저는 공간을 채우기 위해 글을 쓰고 있습니다.
각 $ LINE 뒤에 정확히 175 개의 텍스트가 나오고 다음 $ LINE으로 분리된다는 점을 감안할 때 제가 설명한 방식으로 전체 텍스트 파일을 분할하는 가장 좋은 방법은 무엇입니까?
NUL 문자가있는 파일을 올바르게 처리 할 필요가없는 경우를 사용 read
하여 각 세그먼트를 버퍼로 수집 한 다음 printf
해당 버퍼와 추가되는 문자를 모두 내보낼 수 있습니다.
size=175 # number of bytes per section; tune to fit
interspaced_char=$'\n\n' # character(s) to intersperse; likewise
while REPLY=; IFS= read -r -d '' -n "$size" || [[ $REPLY ]]; do
printf '%s' "$REPLY"
(( ${#REPLY} == $size )) && printf '%s' "$interspaced_char"
done <input >output
read
0이 아닌 종료 상태를 반환하지만 $REPLY
실행 후 비어 있지 않은 경우 루프가 진행 되도록 허용하면 입력 파일의 끝에서 부분 읽기가 허용됩니다.
당신이 경우에 할 NUL 문자를 처리 할 필요가, 당신의 더 나은 내기 (bash에 의해 사용되는) 문자열을 NUL 종료보다는 (파이썬 등) 파스칼 스타일의 문자열 프로그래밍 언어를 사용하는 것입니다; NUL을 포함하는 문자열을 나타내는 것은 bash에서 (배열을 사용하여) 가능하지만 이는 매우 사소한 복잡성을 추가합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다