Bash

使用文件夾名稱搜尋並替換特定文件副檔名上的字元串

  • October 10, 2021

我想在目錄樹 (../MyParentFolder) 內的特定文件副檔名 ("*.txt") 中找到一個字元串 (“AAA”),並將其替換為子文件夾名稱 (MySubfolder)。我知道這裡問了一個類似的問題,但我無法跳轉到用子文件夾名稱替換。

使用接受的搜尋答案中的第三個範例(帶有exec並替換特定文件副檔名上的字元串

find myDirectory/. -type f -name '*.txt' -exec sed -i "$replace" {} +

首先,設置$replace如下:

replace='s/AAA/MySubfolder/'

然後執行find命令。


注意:您可能會發現您需要exportreplace因為您正在使用以下命令啟動另一個程序:find

export replace='s/AAA/MySubfolder/'

此外,如果在任何一行上出現多個“AAA”,並且您希望替換所有這些,那麼您需要將替換設為global,如下所示

s/AAA/MySubfolder/g

引用自:https://unix.stackexchange.com/questions/672612