Text-Processing

連接兩個文件而不添加換行符

  • April 23, 2012

如果我nano有兩個文件,其中一個在我沒有輸入換行符的情況下讀取“this”,而其中一個在沒有我輸入換行符的情況下讀取“is”,我希望能夠cat將這兩個文件組合成類似“thisis”的內容。

相反,自動插入換行符。

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

那麼,如何在不添加換行符的情況下連接兩個文件?

那些尾隨的換行符是由添加的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.

cat不添加換行符。換行符已經出現在test1. 這是正常的:文本文件由一系列行組成,而一行由一系列可列印字元和後跟換行符組成。因此,所有非空文本文件都以換行符結尾。

如果您有兩個文本文件,並且要將它們連接在一起,請使用cat. 您將獲得第一個文件的行,然後是第二個文件的行。

如果你想做一些更複雜的事情,即將第一個文件的最後一行和第二個文件的第一行連接起來,你需要一個更複雜的命令。例如,您可以去除第一個文件的最後一個字元,並附加第二個文件。使用 GNU coreutils(即在非嵌入式 Linux 上),您可以這樣做:

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

或分兩步:

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

引用自:https://unix.stackexchange.com/questions/37135