두 개의 파일이 있는데 그 중 하나는 개행 문자를 입력하지 않으면 "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