개행을 추가하지 않고 두 파일을 연결합니다.

개행을 추가하지 않고 두 파일을 연결합니다.

두 개의 파일이 있는데 그 중 하나는 개행 문자를 입력하지 않으면 "this"로 표시되고, 하나는 개행 문자를 입력하지 않으면 "is"로 표시되는 경우 두 파일을 nano결합할 수 있기를 원합니다. cat"thisis"와 같은 파일로 함께 묶습니다.

대신 개행 문자가 자동으로 삽입됩니다.

alec@ROOROO:~/$ cat test1 test2 > test3
alec@ROOROO:~/$ cat test3
this
is

그렇다면 개행을 추가하지 않고 두 파일을 어떻게 연결합니까?

답변1

nano이러한 후행 줄 바꿈 은 가 아닌 에 의해 추가됩니다 cat.

사용된 nano매개변수 -L:

-L (--nonewlines)
    Don't add newlines to the ends of files.

또는 ~/.nanorc 명령 nonewlines:

set/unset nonewlines
    Don't add newlines to the ends of files.

답변2

cat개행 문자가 추가되지 않습니다. 줄 바꿈 문자가 이미 의 끝에 있습니다 test1. 이는 정상적인 현상입니다. 텍스트 파일은 일련의 행으로 구성되며, 행은 일련의 인쇄 가능한 문자와 개행 문자로 구성됩니다. 따라서 비어 있지 않은 모든 텍스트 파일은 개행 문자로 끝납니다.

두 개의 텍스트 파일이 있고 이를 하나로 연결하려면 를 사용하십시오 cat. 첫 번째 파일의 줄을 가져온 다음 두 번째 파일의 줄을 가져옵니다.

더 복잡한 작업을 수행하려면(예: 첫 번째 파일의 마지막 줄을 두 번째 파일의 첫 번째 줄과 연결) 더 복잡한 명령이 필요합니다. 예를 들어 첫 번째 파일의 마지막 문자를 삭제한 다음 두 번째 파일을 추가할 수 있습니다. GNU coreutils(즉, 내장되지 않은 Linux에서)를 사용하면 다음을 수행할 수 있습니다.

{ <test1 head -c -1 && cat test2; } >test3

또는 두 단계로:

<test1 head -c 1 >test3 && <test2 cat >>test3

답변3

이런 일이 발생하면 개행 문자를 직접 삽입해야 합니다. cat평소대로 연결하십시오. cat먼저 쓰기를 사용한 후 연결을 사용하여 이를 테스트할 수 있습니다 .

cat > file1
# write something
# hit Ctrl+D twice to end file
# repeat steps with file2
cat file1 file2

답변4

일방 통행:

paste -d'\0' test1 test2

산출:

thisis

관련 정보