前言
眾所周知,如果在大多數(shù)服務(wù)器上,不會預(yù)先裝上 ruby 或者 python 這些語言。這時,你要想操作一些文件,一個合理的選擇就是使用 shell。也就是你在 terminal中輸入的那些指令。本文給大家想寫介紹了關(guān)于插入文本到文件的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹:
首先,打開你的 Terminal。
改寫文件
如果你剛剛創(chuàng)建了一個文件,比如touch a.txt
,a 里面現(xiàn)在是空的。你想要往里面加上一句話,怎么操作。你可以打開文件,用 vim,用 atom 都可以。但你要可以用 shell 命令直接插入一句話。
echo 'I want to instert a sentence' > a.txt
這里面的意思是,把 echo 的返回值寫入 a.txt。而 echo 命令的返回值就是你在后面寫的那個字符串。
為什么要用這樣的方法來插入文本呢?出了上述說到的編程環(huán)境的限制外,還有一個限制是,有些情況下,你需要機(jī)器自動插入一些文本到文件,不能依靠跟人的交互來寫入文本。比如說,你丟給服務(wù)器一個 nginx 的安裝腳本,告訴服務(wù)器去安裝 nginx。但是,在安裝過程中, 你需要更改一些 nginx 的參數(shù),但你有不想在那里看著服務(wù)器。所以,你需要把參數(shù)事先寫好,等到一定時機(jī)是自動插入到一些文件中。而不用你在旁邊等著。
插入到末尾
剛才的命令有一個問題,就是不論 a.txt 中有沒內(nèi)容,>這個命令會吧 a 中原有的內(nèi)容都覆蓋。這可能不是你期望的。
如果你用echo 'I want to append a sentence' >> a.txt
。這樣新插入的這句話就在 a.txt 的最后一段。
讀取一個文件并插入到另外一個文件
有時候,我們想在一個文件中插入的內(nèi)容,已經(jīng)在另外一個文件中事先寫好了。這個時候,可以先讀取事先寫好的文明。
這個命令就是在讀取a,然后把 b 改寫成剛剛讀取到的內(nèi)容。
你可能會覺得,這不就是復(fù)制么,為什么要用>呢。是的,這可以用cp代替。但是下面這個命令就不能用 cp 代替了。
Recall
>幫你把某個命令的返回值寫入一個文件
>>幫你把某個命令的返回值插入到某個文件的末尾
我們可以先讀取一個文件,然后用>或者>>,把內(nèi)容插入到另外一個文件。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Shell腳本如何逐行處理文本文件
- Shell文本處理三劍客之sed的使用
- Shell腳本學(xué)習(xí)指南之文本處理工具
- 關(guān)于使用shell腳本循環(huán)處理文本的問題