Text-Processing
在新行下重定向內容(無需進一步的語法或參數)
我嘗試了以下方法將內容附加到文件:
printf "\nsource ~/script.sh" >> /etc/bash.bashrc echo -e "\nsource ~/script.sh" >> /etc/bash.bashrc cat >> "/etc/bash.bashrc" <<< "source ~/script.sh"
這三種方式都有效。我發現這裡的
cat
字元串不太舒服,因為需要從最後閱讀它(在cat
將其附加[end]
到之後[start]
)。所有方式都不會自動換行和
\n
語法,printf
並且echo
是我個人作為最後手段使用的一種。此外,我不知道有什麼方法可以為 herestring 添加換行符,並且在本文件中沒有找到這種方法。我尋求的是一種無需添加任何參數或語法即可自動下線的實用程序。我試圖閱讀 nix 文本處理實用程序,但沒有找到與我所尋求的內容相似的內容。你知道這樣的實用程序嗎?
你不需要寫
cat
“錯誤的方式”這一行,這很好用(當然這裡字元串中的箭頭仍然指向一個奇怪的方向):$ cat <<< "some text" >> testfile $ cat testfile some text
正如評論中提到的,here-string 在末尾添加了一個換行符,而 with
printf
和echo
you\n
在字元串的前面使用。echo
通常會添加尾換行符,就像這裡的字元串一樣,所以如果你只需要它,echo
應該沒問題(而且它是大多數 shell 中的內置函式。)您的所有命令與換行符的工作方式略有不同
cat >> file <<< "string" # newline at end printf "\nstring" >> file # newline at beginning echo -e "\nstring" >> file # newline at beginning and at the end
坦率地說,我認為習慣這種
\n
表示法會更好,但如果你不喜歡它,這裡總是有文件(這裡包括前導和尾隨換行符):cat >> file <<EOF some text EOF