2013-06-20 2 views
-2

У меня есть скрипт, который greps с $1 и $2, первый аргумент - шаблон, а второй - файл.Пытается вызвать скрипт при передаче двух аргументов

Мне нужно создать еще один скрипт, который вызывает этот первый, передает ему два аргумента, а второй - каталог, зацикливает его на всех файлах в каталоге.

Кто-нибудь знает, как бы я это сделал? Я продолжаю приближаться, но терпеть неудачу.

EDIT

мысль, что другой пост я сделал не пройти, каким-то образом он потерял. Прошу прощения у всех, извините.

Прошу прощения. :(

+0

Возможно, если вы указали команду или скрипт 'grep', люди могут указать, где вы ошибаетесь. – doubleDown

ответ

0

Что-то вроде:.

[[ -d "$2" ]] && grep -e "$1" -r "$2" || grep -e "$1" "$2" 

Он проверяет, соответствует ли аргумент 2 является каталогом (синтаксис баш), и если так он вызывает Grep в рекурсивном режиме, в противном случае в нерекурсивна

2
if [[ -d $2 ]]; then 
    find "$2" -type f -exec ./script "$1" {} \; 
else 
    ./script "$1" "$2" 
fi 

Если $2 - это каталог, то команда find находит все файлы в нем и вызывает ./script раз для каждого файла. Фигурные фигурные скобки {} являются заполнительными именами этих файлов.