удаление общих подкаталогов - PullRequest
0 голосов
/ 25 августа 2011

Мне нужен скрипт bash, который проходит через текстовый файл, находит строки, начинающиеся с «Common subdirecties:», и rmdir -rf в двух подкаталогах. Пример строки:

Общие подкаталоги: / dir1 / dirA и / dir1 / dirB

Я довольно новичок в bash-скриптинге, поэтому любая помощь будет отличной.

Ответы [ 4 ]

2 голосов
/ 25 августа 2011
grep 'Common subdirectories: ' < in.txt |\
  cut -d: -f2 | cut -d" " -f2,4 |\
while read a b
do
  rm -rf "$a" "$b"
done

Редактировать; добавлено цитирование, используйте одну и ту же команду rm для обоих

1 голос
/ 25 августа 2011

Более краткая версия:

awk '/^Common subdirectories:/{ system("rm -rf "$3" "$5) }' input.txt
0 голосов
/ 25 августа 2011

Немного короче команда:

awk '/Common subdirectories:/ { print $3 " " $5 }' in.txt | xargs -n1 rm -rf
0 голосов
/ 25 августа 2011

Вот более полный пример:

for F in `grep 'Common subdirectories' input.txt | cut -d: -f2 | awk 'BEGIN{RS=" "}{ print }' | tr -d ' '`
do
    [ -d "$F" ] && rm -rf $F
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...