2011-08-25 161 views
0

我需要一个通过文本文件的bash脚本,找到以“公共子目录:”开头的行和rmdir -rf这两个子目录。行的示例:删除公共子目录

公共子目录:/ DIR1 /迪拉和/ DIR1/DIRB

我是很新的脚本的bash所以任何帮助将是巨大的。

回答

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

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

+0

辉煌,谢谢! – Michael

+1

Un * x管道的美妙之处在于您可以一步步构建它们。 – 2011-08-25 13:42:10

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 
1

一个更简洁的版本:

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

有点短命令:

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