我有很多静态html文件(超过一千个)没有Google Analytics代码。
我的挑战是,并非所有的html文件都没有Google Analytics代码。这是应添加Google Analytics代码的文件的文件夹结构:
user/[user ID]/sites/[site ID]/
这些文件夹中有多个html文件。我不能简单地在所有html文件上使用sed
,因为同一“users”文件夹中的后续文件已经有了Google Analytics代码:
user/[user ID]/editor/index.html
此外,我的html文件以一行结尾。
如何在此之前添加js代码(即Google Analytics)并从流程中排除所有user/[user ID]/editor/index.html
个文件?
答案 0 :(得分:4)
使用find
并排除正确的文件。
find . -type f -regextype sed -regex '.*users/[0-9]*/sites/[0-9]*/.*html' -exec sed -i 's/pattern/replace/g' "{}" \;
您始终可以从该查找中排除文件,例如文件.*/sites/.*/index.html
:
find . -type f -regextype sed -regex '.*users/[0-9]*/sites/[0-9]*/.*html' -not -name "*index.html" -exec sed -i 's/pattern/replace/g' "{}" \;