如何使用grep模式匹配迭代移动文件/文件夹

时间:2018-04-28 11:30:37

标签: bash shell ubuntu

我正在尝试迭代地将代码文件/文件夹从一个目录移动到另一个目录,作为持续集成的一部分,为此,我使用下面的代码块。

for i in $HOME/gitstage/frolit/* ; do 
    if [ echo "$i" | grep -v '*db.sqlite3*|*bitbucket-pipelines.yml*' ]; then
        echo "$i"
    fi
done

这里我试图限制两个文件db.sqlite3和bitbucket-pipelines.yml进入目标目录。但不知何故,这还没有成功。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

使用bash 3.0或更新版本:

if [[ ! "$i" =~ .*(db.sqlite3|bitbucket-pipelines.yml).* ]]; then

答案 1 :(得分:0)

for i in $HOME/gitstage/frolit/* ;
do
if [[  "${i}" = *"db.sqlite3"* ]] || [[ "${i}" = *"bitbucket-pipelines.yml"* ]];
then
continue
fi
mv  $i   /target/directory  ####target directory  where   you want  to move the   files to
done

即使在旧版本中,这应该在bash和ksh中都能正常工作。只需确保检查shell的语法是否相应,并在相应的情况下修改上述内容。