объединить два файла без добавления новой строки

Если я nano два файла, один из которых читает «это» без меня, вводя новую строку, и один из которых читает «есть», без меня, вводя новую строку, я хочу, чтобы у вас были возможность cat эти два файла в нечто вроде «thisis ».

Вместо этого новые строки вставляются автоматически.

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

Итак, как я могу объединить два файла без добавления новой строки?

Эти завершающие символы новой строки добавляются nano , а не cat .

Используйте параметр nanonano :

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

Или команда nonewlines / nonewlines :

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

Если это происходит, вы наверняка вставили себе символ новой строки. cat объединяет их, как всегда. Вы можете проверить это, используя cat чтобы сначала написать, а затем объединить:

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

cat не добавляет новые строки. Новая строка уже присутствует в конце test1 . Это нормально: текстовый файл состоит из последовательности строк, а строка состоит из последовательности печатных символов, за которыми следует символ новой строки. Таким образом, все непустые текстовые файлы заканчиваются символом новой строки.

Если у вас есть два текстовых файла, и вы хотите объединить их вместе, используйте cat . Вы получите строки первого файла, за которыми следуют строки второго файла.

Если вы хотите сделать что-то более сложное, а именно, присоединитесь к последней строке первого файла с первой строкой второго файла, вам понадобится более сложная команда. Например, вы можете удалить последний символ первого файла и добавить второй файл. С GNU coreutils (т.е. на не встроенной Linux) вы можете сделать это:

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

или в два этапа:

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

В одну сторону:

 paste -d'\0' test1 test2 

Вывод:

 thisis