Linux 系統中向檔案追加文字的幾種常用方法

Linux 系統中向檔案追加文字的幾種常用方法

你是否曾經需要在 Linux 系統中為現有文件添加新文字?無論是更新日誌、追加配置值或保存命令輸出,對於開發人員、系統管理員和自動化任務管理人員來說,了解如何在不覆蓋現有資料的情況下完成此操作至關重要。為了防止意外覆蓋導致資料遺失,掌握追加文字的方法至關重要。在本指南中,我們將深入探討各種用於向檔案追加內容的有效 Linux 指令。

理解追加與覆蓋

修改檔案時,主要有兩種選擇:追加和覆蓋。覆蓋會將現有內容完全替換為新數據,導致原始內容遺失。相較之下,追加是在文件末尾添加新數據,同時保留現有資訊。

使用雙重重定向運算子追加文本

雙重重定向運算子(`\double redirects` >>)是Linux中新增文字給現有檔案的簡單方法。此運算符不僅會新增內容,還會在文件不存在時建立文件,且不會刪除原有資料。

例如,您可以將echo命令與>>運算子結合使用,以追加日誌條目。方法如下:

echo "Backup Completed Successfully on $(date)" >> backup.log

這將在「backup.log」檔案的末尾添加一條帶有時間戳記的訊息,並保留先前的條目。

使用 Echo 進行追加

另一種方法是將該printf命令與雙重重定向運算子結合使用,以便更有效地控制格式。這對於追加結構化資料尤其有用:

printf "User login attempt: %s\n" "$(date)" >> system_activity.txt

執行此命令後,將包含目前日期的結構化日誌條目附加到「system_activity.txt」中。

使用 Printf 追加

此外,該cat指令還可用於合併文件,將一個文件的內容追加到另一個文件之後。這種方法對於合併報告或日誌非常有用:

cat mte.txt >> example.txt

使用 Cat 進行附加

最後,您可以使用雙重重定向運算子將任何命令的輸出直接儲存到指定的檔案中:

ls >> logs.txt

重定向到文件

請注意,該>>運算子只能將文字追加到文件末尾,不允許在行之間插入文字。

使用 tee 指令進行文字追加

tee命令是一個功能強大的工具,它可以從終端機讀取輸入並同時將其寫入檔案。當您希望在終端機螢幕上查看命令輸出的同時保留輸出內容時,此命令尤其有用。有兩種方法可以追加內容tee:使用帶有-a選項的命令,或結合雙重重定向運算子。

要使用此-a選項以互動方式追加文本,只需執行以下操作:

tee -a mte.txt

Ctrl運行此命令後,您將進入交互模式,可以在其中輸入文字。按+結束輸入D

使用T型接頭進行連接

第二種方法是使用重定向運算子和以下tee命令:

tee >> mte.txt

這種方法原理類似,但你輸入的任何文字都不會顯示在終端上。

使用 Tee 重定向

記住,在追加檔案時,一定要使用-a標誌tee>>運算符,以防止覆蓋檔案。

使用 sed 指令追加文本

sed指令(或稱為流編輯器)可讓您修改文件中的文字或終端機輸入的文字。它特別適用於在指定行號處新增文字或在檔案中符合特定模式。

sed -i '$ a\<text_to_append>' <file_name>

在此命令中,將 `<input>` 替換text_to_append為所需的輸入內容,file_name將 `<filename>` 替換為實際的檔案名稱。例如:

sed -i '$ a appending text using sed' mte.txt

此指令使用$符號在檔案末端新增一行,而a表示要追加的意圖。

使用 Sed 進行附加

此外,該sed工具允許您在任意指定行號插入文字。例如,要在第三行之後新增文本,您可以將 `<line>` 替換$3

sed -i '3 a appending a new line after the third line' mte.txt

在指定位置新增文本

除了命令列選項外,還可以利用 Nano 和 Vim 等文字編輯器在文件中的所需位置追加內容。

將命令輸出和錯誤重定向到文件

Linux 允許使用者將命令的標準輸出和標準錯誤重新導向到同一個文件,從而更方便地集中查看所有結果和錯誤訊息。例如,您可能希望捕獲命令產生的成功和失敗的輸出ls,尤其是一些目錄不存在的情況:

ls /etc /unknown >> output.log 2>&1

在這個例子中,1代表標準輸出,而2代表標準誤差。

標準輸出與誤差

該命令會將結果和錯誤訊息都附加到「output.log」中,從而可以輕鬆追蹤成功操作和錯誤。

結論

掌握向文件追加文字的技巧對於高效的日誌管理、腳本自動化和輸出保存至關重要。熟悉這些 Linux 指令能讓您有效率地更新文件,同時防止意外覆蓋。此外,探索各種命令列工具還能進一步提升您的文字處理效率。

圖片來源及圖片

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *