파일이 잔뜩 있는데 .text
,최대표준 nl로 끝납니다.
부부에게는 마지막에 마무리자가 없습니다. 마지막 물리적 바이트는 (보통) 영숫자 문자입니다.
를 사용하고 있었는데 cat *.text >| /tmp/joined.text
, Join.text의 몇몇 위치에서 파일의 첫 번째 줄이 이전 파일의 마지막 줄 끝에 나타나는 것을 발견했습니다. 이전 파일을 확인해 보니 연결을 설명하는 줄 종결자가 없는 것을 확인했습니다.
이는 누락된 개행 문자를 연결하는 가장 간단한 방법이 무엇인지에 대한 질문을 제기합니다. 이 옵션은 어떻습니까?
- 특정 입력 파일에 빈 줄을 효율적으로 추가하는 솔루션입니다. 나에게는 Join.text의 처리가 이를 처리할 수 있으므로 이는 문제가 되지 않습니다.
- 해결책은 이런 식으로 끝나지 않은 파일에 cr/fl을 추가하는 것입니다.
답변1
필요한 경우 줄바꿈을 추가할 수 있는 또 다른 명령은 awk
다음과 같습니다.
awk 1 ./*.txt
여기서 1은 awk에서 참 조건을 얻는 가장 간단한 방법이며 참 조건에 대한 awk의 기본 동작은 입력 행을 인쇄하는 것이기 때문에 이 목적으로 사용될 수 있습니다.
답변2
cut
GNU와 같은 일부 구현을 사용하면 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