Bash
使用文件夾名稱搜尋並替換特定文件副檔名上的字元串
我想在目錄樹 (../MyParentFolder) 內的特定文件副檔名 ("*.txt") 中找到一個字元串 (“AAA”),並將其替換為子文件夾名稱 (MySubfolder)。我知道這裡問了一個類似的問題,但我無法跳轉到用子文件夾名稱替換。
使用接受的搜尋答案中的第三個範例(帶有
exec
)並替換特定文件副檔名上的字元串:find myDirectory/. -type f -name '*.txt' -exec sed -i "$replace" {} +
首先,設置
$replace
如下:replace='s/AAA/MySubfolder/'
然後執行
find
命令。注意:您可能會發現您需要
export
,replace
因為您正在使用以下命令啟動另一個程序:find
export replace='s/AAA/MySubfolder/'
此外,如果在任何一行上出現多個“AAA”,並且您希望替換所有這些,那麼您需要將替換設為global,如下所示
s/AAA/MySubfolder/g