如何在 Linux 命令行中合并文件
我們在先前的文章中介紹過 ??cat 命令???的使用,了解到該命令用于獲取文件內(nèi)容并將其輸出到屏幕或其他設(shè)備中。事實上,cat 命令的最初目的是連接文件,所以我們可以用它來合并文件。
使用 ??cat 命令???合并文件的方法很簡單,在命令后面跟上要合并的文件名稱(包括路徑)即可,如下所示:
我們舉個例子,假如我們有兩個文件分別為 file1.txt 和 file2.txt,我們首先使用 cat 命令查看其中的內(nèi)容,然后再將這兩個文件合并,如下圖所示:
但是上面的例子,只是將兩個文件的內(nèi)容合并輸出到了終端中,并沒有將合并后的內(nèi)容保存到什么地方,且對于 file1.txt 和 file2.txt 這兩個文件也并沒有做什么改動。如果我們想要將合并后的內(nèi)容保存到某個地方,需要將其重定向到另外一個文件中,如下所示:
上述命令中的 file3.txt 可以是一個現(xiàn)有的文件,也可以是一個不存在的文件,如果不存在,將會創(chuàng)建。另外一個,上面命令中的重定向符號 > 會覆蓋文件的內(nèi)容,所以我們建議不要使用現(xiàn)有文件,以免被覆蓋。
使用 cat 命令將合并后的內(nèi)容追加到現(xiàn)有文件中
每次合并都要重新創(chuàng)建一個文件,對于某些需求來說,也不太方便。那么,有沒有方法將合并后的內(nèi)容追加到某個現(xiàn)有文件中呢?答案是肯定的。方法就是將重定向符號 > 改為 >>,如下所示:
上面的 file1.txt,file2.txt 和 file3.txt 是前一個例子中用到的文件,為了區(qū)分,我們在 file1.txt 和 file2.txt 中中添加一些字符,然后執(zhí)行上面命令之,我們再看一下 file3.txt,如下圖所示:
可以看到,file3.txt 中的內(nèi)容是在先前的基礎(chǔ)上追加了部分內(nèi)容。
使用循環(huán)合并多個文件
如果要合并的文件數(shù)量過多,比如100個,那需要在 cat 命令后添加 100 個文件名稱嗎?這樣肯定是不現(xiàn)實的。我們有一個現(xiàn)成的方法,那就是使用 for 循環(huán)來合并文件。
比如,我們要有file1.txt,file2.txt 。。。file5.txt 5個文件需要合并,可使用如下命令:
上述命令我們將 5 個文件的內(nèi)容合并到了新文件 newfile.txt 中。
合并文件的其他方法
除了使用 cat 以外,還可以使用?? sed 命令???來合并文件。sed 是一種非交互式的文件編輯方式,它可以在某個特定時間內(nèi)保存文件的更改,使用 h 選項,可以將更改暫時放在緩沖區(qū)??聪旅娴睦樱?/span>