Text-Processing
連接兩個文件而不添加換行符
如果我
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