我维护多个邮件服务器,每个用户文件夹中都有明文配置文件,具有以下层次结构:
domain.com
->user1
->user2
anotherdomain.com
->user3
->user4
在每个用户的文件夹中都有一个需要编辑的文件。每个文件需要将第一部分更改为以下内容:
#!0 __WebmailJunk__
#if allof (spamtest, not address :all :is "From" "") {
# fileinto "Junk E-mail";
# stop;
#}
改为:
#!1 __WebmailJunk__
if spamtest {
fileinto "Junk E-mail";
stop;
}
这假设文件尚未更改。
我想我想出了如何使用以下代码逐个编辑文件:
while read line
do
CHARACTER=`echo $line | cut -c 1`
if [[ $CHARACTER == "}" ]] ;
then
exit 0
fi
sed -i -e 's/^/#/' <filename>
done
还没弄明白如何解析每个用户目录只有一个文件夹深度来编辑文件。有问题的服务器正在运行CentOS 6.4。
答案 0 :(得分:0)
您可以使用find来匹配用户文件吗? e.g。
find ./ -maxdepth 1 -name "user*" -exec script_that_does_text_replace.sh {\} \;
其中script_that_does_text_replace.sh
是您在上面编写的代码。