Linux系統,取代目錄(含子目錄)下所有檔案裡字串


問題

content 目錄下 http://forestmeditation.com/audio/files/ 這個字串取代成 /7rsk9vjkm4p8z5xrdtqc/audio/ForestMeditation/ ,該如何做呢?

解答

經過Google搜尋後,找到 [1][2] ,可利用 findsed 來達成任務:

先進入 content 目錄,然後打:

find . -type f -exec sed -i 's/http:\/\/forestmeditation.com\/audio\/files\//\/7rsk9vjkm4p8z5xrdtqc\/audio\/ForestMeditation\//g' {} +

(利用 \escape /)


References:

[1]text processing - How can I replace a string in a file(s)? - Unix & Linux Stack Exchange
[2]How to replace a string in multiple files in linux command line - Stack Overflow
[3]bash - Escape a string for a sed replace pattern - Stack Overflow
[4]三分钟教你轻松掌握 grep 命令中的正则表达式 - 博客 - 伯乐在线