如何在Linux系統中使用grep查詢並替換檔案中的單詞?
雖然有很多方法可以在Linux目錄中的特定檔案中列印和使用特定單詞,但是當我們談論查詢特定單詞然後將其替換為其他單詞時,我們需要混合使用某些Linux實用程式命令。
我們必須瞭解的兩個Linux實用程式命令是:
find - 用於查詢特定檔案或目錄
sed - 流編輯器縮寫,用於執行搜尋、編輯和替換等功能。
為了解決查詢並替換特定單詞的問題,我們將使用一個組合命令,該命令同時包含上述兩個命令。
假設我們有一個名為textfile.txt的文字檔案,其中包含以下文字:
this is a simple file
現在,我們想將文字“text = **simple**”替換為“text = **not a simple**”。為此,我們將首先找到該檔案,然後使用exec實用程式命令告訴Linux我們要執行某些操作,然後使用sed命令來幫助我們查詢並更改檔案中的字串。
在您的終端中執行以下命令:
find textfile.txt -type f -exec sed -i "" "s/sample/not a sample/g" {} \;
執行檔案後,textfile.txt檔案的內容應如下所示:
this is a not a sample file
問題解決了,但是等等,如果您使用的是macOS,則為了實現此輸出,您需要匯出兩個環境變數,或者您可以將它們放在~/.bashrc或~/.zshrc檔案中。
在下面的程式碼中,您可以看到我的~/.zshrc檔案中存在的不同環境變數:
immukul@192 linux-questions-code % cat ~/.zshrc export GOPATH=/Users/immukul/go_projects export NDHOME=/Users/immukul/Downloads export GOTRACEBACK=all export GOROOT=/usr/local/go export LC_CTYPE=C export LANG=C
透過將LC_CTYPE設定為C,我們告訴Linux字串中的每個位元組都是其自身的字元,無需應用任何編碼規則。
請注意~/.zshrc檔案輸出中最後兩個變數,您只需要將它們放在~/.bashrc或~/.zshrc檔案中即可。
廣告