如何使用 Bash 將文字新增到檔案中

Suraj Joshi 2023年1月30日
  1. 使用重定向操作符 >> 將文字新增到檔案中
  2. 使用 tee 命令將文字新增到檔案中去
如何使用 Bash 將文字新增到檔案中

我們可以使用重定向(>>)運算子和 tee 命令將文字追加到檔案中。

我們必須確保我們有足夠的許可權來新增文字到檔案中。如果我們沒有足夠的許可權,我們可能會得到許可權拒絕的錯誤。

使用重定向操作符 >> 將文字新增到檔案中

重定向操作符 >>bash 命令中獲取輸出,並將輸出附加到另一個檔案。有很多方法可以將文字列印到標準輸出中,但是 echoprintf 是最常用的命令。

要將文字新增到一個檔案中,我們使用任何一個輸出命令編寫一個列印文字的命令,然後在命令後面新增 >> 運算子,再加上需要新增文字的檔名。

echo "Hello World" >> abc.txt

這將在檔案 abc.txt 的末尾新增文字 Hello World

如果該檔案在當前工作目錄下不存在,該命令將建立一個空檔案,並將文字 Hello World 寫入該檔案中。

為了解釋轉義序列字元,如\n,我們使用 echo 命令的 -e 選項。

echo -e "Hello World! \nThis is DelftStack" >> abc.txt

這將附加文字

Hello World!
This is DelftStack

到檔案 abc.txt 中。

為了驗證文字是否被新增,我們可以使用 cat 命令來檢視檔案的內容。

cat abc.txt

輸出:

Hello World! 
This is DelftStack

如果文字已被新增,我們可以看到檔案末尾的文字。

如果我們想要更多格式化的文字,我們可以使用 printf 命令來產生更多格式化的輸出。

printf "The path of shell interpreter is %s\n" $SHELL >> abc.txt

它將文字 The path of shell interpreter is /bin/bash 新增到檔案 abc.txt 中。

使用 tee 命令將文字新增到檔案中去

tee 是一個命令列實用程式,它從標準輸入中獲取輸入,並將其同時寫入一個或多個檔案和標準輸出。

預設情況下,tee 命令會覆蓋檔案的內容。如果只想在檔案末尾附加文字,我們使用命令中的 -a--append 選項。

echo "Hello World!" | tee -a abc.txt

輸出:

Hello World!

它將 Hello World! 追加到檔案 abc.txt 中,並將文字寫入終端的標準輸出。

如果我們在向檔案追加文字時出現許可權被拒絕的錯誤,我們可以在 tee 命令前加上 sudo 關鍵字。

echo "Hello World!" | sudo tee -a abc.txt

如果我們不想看到標準輸出,我們可以將輸出重定向到/dev/null

 echo "Hello World!"  | tee -a abc.txt >/dev/null

使用 tee 命令的一個好處是,我們可以使用 tee 命令將文字同時寫入多個檔案。要將文字寫入多個檔案,我們只需將所有檔案用空格隔開即可。

echo "Hello World!" | sudo tee -a abc.txt backup.txt

它將文字同時追加到 abc.txt 和 backup.txt 兩個檔案中。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn