2012-06-28 64 views

回答

6

以下命令將兩個文件,並將它們合併成一個

cat file1.txt file2.txt > file3.txt; mv file3.txt file2.txt 
+1

良好的通話,沒有考慮到它正在寫入自己的事實。然後是中介文件。然後mv。調整答案,以適應 –

0

書面文件的方式是像1)。追加在文件末尾或2)。重寫那個文件。

如果您想將file1.txt中的內容放在file2.txt之前,恐怕您需要重寫組合的罰款。

5

您可以使用sponge管道從moreutils做到這一點:

cat file1.txt file2.txt | sponge file2.txt 
2

使用GNU的另一種方式的sed:

sed -i -e '1rfile1.txt' -e '1{h;d}' -e '2{x;G}' file2.txt 

即:

  • 在1號線,追加文件內容file1.txt
  • 在1號線,複製模式的空間來存放空間,並刪除模式空間
  • 第2行,交換保持和模式空間的內容,並保留空間追加到模式空間

它的原因有點棘手的是,r命令附加內容, 和第0行不可尋址,所以我們必須在第1行, 移動原始行的內容,然後將它的內容帶回該文件被追加。

+0

是否有類似的OSX版本的sed命令? – Joey

+0

macos:你可以安裝gsed(macports,可能也是自制軟件)。說,我結束了只是file1的內容,file2的內容丟失了。 –

相關問題