如何使用 sed 命令替換目錄及其子目錄中檔案中的文字?
讓我們考慮一個案例,假設我們有兩個目錄,例如 d1 和 d2,這兩個目錄都包含一些檔案,這些檔案可能是相同或不同的。現在,我們希望使用 sed 命令替換可能存在於 d1 目錄或 d2 目錄中某些檔案中的特定文字。
為了做到這一點,我們必須熟悉 sed 命令,因為 sed 命令可以用來解決上述問題。
讓我們首先探索 sed 命令,它是 流編輯器的縮寫。此命令用於對特定檔案執行不同的功能,例如查詢、替換、插入等等。
讓我們探索一個案例,假設我們有兩個目錄 d1 和 d2,這兩個目錄都包含一些檔案。
請考慮以下終端輸出,以顯示這兩個目錄:
immukul@192 linux-questions-code % ls -ltr total 0 drwxr-xr-x 5 immukul staff 160 Jul 5 20:03 d1 drwxr-xr-x 4 immukul staff 128 Jul 5 20:03 d2
現在,第一個目錄 d1 的內容如下所示:
immukul@192 d1 % ls -ltr total 0 -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 1.txt -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 3.txt -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 5.tx
現在,第二個目錄 d2 的內容如下所示:
immukul@192 d2 % ls -ltr total 0 -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 2.txt -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 3.txt
現在,如果我們列印 d1 目錄中存在的檔案的內容,我們將得到如下所示的內容:
immukul@192 d1 % cat 1.txt orange immukul@192 d1 % cat 3.txt immukul@192 d1 % cat 5.txt orange
我們可以看到,檔案 1.txt 和 5.txt 中包含字串“orange”。
現在,如果我們列印 d2 目錄中存在的檔案的內容,我們將得到如下所示的內容:
immukul@192 d2 % cat 2.txt orange immukul@192 d2 % cat 4.txt
我們可以看到,檔案 2.txt 中包含字串“orange”。
現在,我們希望使用單個命令將所有檔案中字串“orange”替換為“apple”,為此,我們在終端中輸入以下命令
find ./ -type f -exec sed -i -e 's/orange/apple/g' {} \;輸出
immukul@192 d1 % cat 1.txt apple immukul@192 d1 % cat 3.txt immukul@192 d1 % cat 5.txt apple immukul@192 d2 % cat 2.txt apple immukul@192 d2 % cat 4.txt
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP