如何使用 Bash 將文字新增到檔案中
我們可以使用重定向(>>
)運算子和 tee
命令將文字追加到檔案中。
我們必須確保我們有足夠的許可權來新增文字到檔案中。如果我們沒有足夠的許可權,我們可能會得到許可權拒絕的錯誤。
使用重定向操作符 >>
將文字新增到檔案中
重定向操作符 >>
從 bash
命令中獲取輸出,並將輸出附加到另一個檔案。有很多方法可以將文字列印到標準輸出中,但是 echo
和 printf
是最常用的命令。
要將文字新增到一個檔案中,我們使用任何一個輸出命令編寫一個列印文字的命令,然後在命令後面新增 >>
運算子,再加上需要新增文字的檔名。
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 is a backend software engineer at Matrice.ai.
LinkedIn