У меня есть функция Grep ниже:
#!/bin/bash
echo What directory contains the text files with your data?
read mydirectory
cd $mydirectory
echo What should we name your output?
read $myoutput
for file in *.txt; do
grep -q $3 "$file" && grep -q foo "$file" && echo ""$file"">>"$myoutput.txt"
done
Мне бы очень хотелось иметь возможность использовать аргументы из командной строки для более быстрого запуска скрипта. Я хочу иметь возможность нажать стрелку вверх, изменить несколько параметров и снова запустить скрипт.
Переменная $ 1 всегда будет каталогом с файлами .txt, над которыми я хочу запустить Grep. Переменная $ 2 всегда будет тем, что я хочу назвать своим выходным файлом. После этого каждый параметр должен использоваться в позиции $ 3 функции grep. Моя проблема в том, что мне нужно выполнять "n" наборов условий в зависимости от того, что я ищу в своих файлах.
Например, иногда это может быть:
#!/bin/bash
echo What directory contains the text files with your data?
read mydirectory
cd $mydirectory
echo What should we name your output/
read $myoutput
for file in *.txt; do
grep -q 30 "$file" && grep -q 8 "$file" && grep -q 12 "$file" && grep -q B "$file" && echo ""$file"">>"$myoutput.txt"
done
В других случаях это может быть:
#!/bin/bash
echo What directory contains the text files with your data?
read mydirectory
cd $mydirectory
echo What should we name your output?
read $myoutput
for file in *.txt; do
grep -q 30 "$file" && grep -q 8 "$file" && grep -q 12 "$file" && grep -q 13 "$file" && grep -q 18 "$file" && grep -q B "$file" && echo ""$file"">>"$myoutput.txt"
done
Есть ли хитрый способ обойти это? Я искал в Интернете, но ничего не смог найти. Спасибо за вашу помощь!