當你正鑽研Linux指揮線和你表達得很清楚的時候,一大檔案或者一許多的檔案,在中你需要用裁決在每一文本的事例方面和黏貼另一個代替某些文本的能是一多少時間耗盡生命.好,不再擔心.Linux有才只是你的解決方案.這裡’s一種找出在一或更多更多中和取代一串文本的方式自動排成一行.
為了這我們將使用的練習一件Linux指揮線工具被被稱作“sed的” ”sed”是一件很強大和有多種用途工具,和很多能被寫作關於它的才能的.我們正使用一”這裡“sed的很有限方面.我將肯定建議”如果你發現這它的方面有趣的,你沿著在“sed上不少閱讀.
我們將使用下列的句法找出在一檔案中和取代一串文本:
#sed-i’s/[[orginal_text][/new_text]’filename.txt
假定你讓一檔案被”隨著你的在它中資料庫伺服器的IP地址的許多事例被稱作“database.txt的.你剛剛轉換到一新資料庫伺服器和需要用新伺服器更新它’s IP地址.老IP地址是192.168.1.16和新的那個等於192.168.1.22.這裡’你怎樣著手進行它的s:
#貓database.txt
LOCAL_DATABASE=192.168.1.16
LOCAL_DIR=/home/calvin/
PROD_DB=192.168.1.16
# sed-i’s/192.168.1.16/192.168.1.22/g’ database.txt
#貓database.txt
LOCAL_DATABASE=192.168.1.22
LOCAL_DIR=/home/calvin/
PROD_DB=192.168.1.22
現在打開”你的魔王一的檔案“database.inc和檢查,看是否新IP地址已經發生.這裡’s上述指揮的散夥.首先你給“sed”指揮打電話.然後你它通過”有效的參數“-s“進入地方的”現在我們使用一點兒通常稱作“regex” for正常表達的下一個咬.“s”在中舉出繩子為“代替者是站立”和”最後“g豎立“全球性”在他們之間他們造成一“全球性代用的你安置的在其間他們串文本.
你能”最後隨意地跳過“g.這個意味著代用不會是全球性哪一個僅第一繩子的事例的在一線中代用幾乎表示.那樣如果你隨著文本的多重事例有一線,你是試圖的這裡取代’s什麼將發生
#貓database.txt
LOCAL_DATABASE=192.168.1.16
LOCAL_DIR=/home/calvin/
PROD_DB=192.168.1.16,192.168.1.16
# sed-i’s/192.168.1.16/192.168.1.22/’ database.txt
#貓database.txt
LOCAL_DATABASE=192.168.1.22
LOCAL_DIR=/home/calvin/
PROD_DB=192.168.1.22,192.168.1.16
來了真正魔術.現在,假定你想要改變一串不才只是在一一列縱隊檔案中但是在你是進入的整個目錄中文本.有許多文本檔案,在中你需要發現”和“香檳酒在一起和把“葡萄酒放回的”.
#發現.-maxdepth1名字“*.txt”類型f經理sed-i’s/wine/champagne/’
我們使用發現使一份清單變得在所有中的命令文本檔案在目前目錄中.那個’s“發現.-maxdepth1名字“*.txt”類型f”部份.“發現. maxdepth1″告訴電腦在目前目錄中看和變為不是與目前目錄相比更深.‘-name ”*.txt”‘ 部份“.txt的延長地告訴僅清單檔案發現”然後“類型f”部份明確說明“發現”應該僅挑選準確相配檔案.最後“經理”部份說出“裁決”執行跟隨的,在這個情況中,“sed”取代文本--“sed-i’’s/wine/champagne/的命令是其的命令”.
I realize that上述指揮似乎是複雜.但是,你一旦使用它,有些就你將意識到它大概是值得記下它和使用它.現在請嘗試改變一串在目錄的多重水準中文本.
書籤和份





























… 現在 0意見添加一
留下一意見