파일을 하나로 묶는 방법, 일부 파일 끝에 누락된 개행 추가

파일을 하나로 묶는 방법, 일부 파일 끝에 누락된 개행 추가

파일이 잔뜩 있는데 .text,최대표준 nl로 끝납니다.

부부에게는 마지막에 마무리자가 없습니다. 마지막 물리적 바이트는 (보통) 영숫자 문자입니다.

를 사용하고 있었는데 cat *.text >| /tmp/joined.text, Join.text의 몇몇 위치에서 파일의 첫 번째 줄이 이전 파일의 마지막 줄 끝에 나타나는 것을 발견했습니다. 이전 파일을 확인해 보니 연결을 설명하는 줄 종결자가 없는 것을 확인했습니다.

이는 누락된 개행 문자를 연결하는 가장 간단한 방법이 무엇인지에 대한 질문을 제기합니다. 이 옵션은 어떻습니까?

  1. 특정 입력 파일에 빈 줄을 효율적으로 추가하는 솔루션입니다. 나에게는 Join.text의 처리가 이를 처리할 수 있으므로 이는 문제가 되지 않습니다.
  2. 해결책은 이런 식으로 끝나지 않은 파일에 cr/fl을 추가하는 것입니다.

답변1

필요한 경우 줄바꿈을 추가할 수 있는 또 다른 명령은 awk다음과 같습니다.

awk 1 ./*.txt

여기서 1은 awk에서 참 조건을 얻는 가장 간단한 방법이며 참 조건에 대한 awk의 기본 동작은 입력 행을 인쇄하는 것이기 때문에 이 목적으로 사용될 수 있습니다.

답변2

cutGNU와 같은 일부 구현을 사용하면 cut다음을 수행할 수 있습니다.

cut -b 1- ./*.text > output

누락된 경우 누락된 개행 문자를 추가하기 때문입니다.

답변3

이 편리한 Perl 한 줄짜리 줄은 누락된 줄 바꿈을 추가하는 작업을 수행합니다(해당 줄 바꿈이 아직 존재하지 않는 경우에만).

perl -lpe '' ./*.text > output

답변4

내 마음에 떠오른 첫 번째 접근 방식은 파일을 반복하고 줄 바꿈이 추가된 내용을 인쇄하는 것이었습니다.

for f in *text; do
    printf '%s\n' "$(cat < "$f")"
done > /tmp/joined.text

이렇게 하면 이미 존재하는 모든 개행 문자가 제거되므로 각 파일 끝에 개행 문자가 하나만 $()생성됩니다 .\n

관련 정보