日期:2014-05-16  浏览次数:20589 次

shell 菜鸟脚本求教
#!/bin/sh

mkdir tmp
cd tmp
path = pwd
cd ..
fold1=$(echo $1|sed's|\(^[^/]*\).*|\1|')
fold2=$(echo $2|sed's|\(^[^/]*\).*|\1|')

compareFOLD()
{
for file in $1/*
do
if[-d $file]then
compareFOLD $file
elif[-f $file]
then
if[! -L$file]
then
file2=$(echo $file |sed"s|^.[^/]*\(.*\)|$fold2\1|")
diff $file $file2
if[$? -ne 0]
then
cp $file $(path)
fi
fi
  fi
  done
}

compareFOLD $fold1

比较两个目录,把不同的文件拷贝到临时目录中。 对于 sed流编辑器后的正则很不明白。谢谢

------解决方案--------------------
提取第一个参数的第一个/之前的部分,并赋值给变量fold1
假定第一个参数是a/b/c,那么fold1就是a