删除公共子目录

时间:2011-08-25 13:19:36

标签: linux bash unix shell

我需要一个bash脚本,它通过一个文本文件,找到以“Common subdirectories:”开头的行,以及rmdir -rf这两个子目录。行的例子:

  

公共子目录:/ dir1 / dirA和/ dir1 / dirB

我很擅长打击脚本,所以任何帮助都会很棒。

4 个答案:

答案 0 :(得分:2)

grep 'Common subdirectories: ' < in.txt |\
  cut -d: -f2 | cut -d" " -f2,4 |\
while read a b
do
  rm -rf "$a" "$b"
done

编辑;添加引用,对两个使用相同的rm命令

答案 1 :(得分:1)

更简洁的版本:

awk '/^Common subdirectories:/{ system("rm -rf "$3" "$5) }' input.txt

答案 2 :(得分:0)

这是一个更完整的例子:

for F in `grep 'Common subdirectories' input.txt | cut -d: -f2 | awk 'BEGIN{RS=" "}{ print }' | tr -d ' '`
do
    [ -d "$F" ] && rm -rf $F
done

答案 3 :(得分:0)

命令稍短:

awk '/Common subdirectories:/ { print $3 " " $5 }' in.txt | xargs -n1 rm -rf