Назад | Перейти на главную страницу

выполнение части скрипта из внешнего файла

У меня есть некоторая информация, хранящаяся во внешнем файле.

В основном скрипте я разбираю вторичный файл, чтобы выяснить, как следует обрабатывать информацию.

Для этого я пробовал это:

cat ./secondary.file
file:block.txt @"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)" | awk '{print $1"/"$3}'

который, по сути, определяет, где брать данные и что делать, чтобы получить правильный результат. Идея состоит в том, что каждая строка будет иметь новый файл: ссылка на имя файла и способ получения согласованного вывода из каждого файла.

Итак, в основном файле я могу сделать это:

source=`cat ./secondary.file | grep -Ev "^#|^$" | tr -d "\r" | cut -d@ -f2`

что дает мне "метод":

"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)" | awk '{print $1"/"$3}'

Теперь я пытаюсь добавить это в конвейер команд основного скрипта

... | grep -E $regex

что я надеялся перевести во что-то вроде:

... | grep -E "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)" | awk '{print $1"/"$3}'

но он не жалуется на то, что grep не является командой и то же самое для awk. Я пытался хранить полные команды во вторичном файле, например

file:block.txt @grep -E "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)" | awk '{print $1"/"$3}'

но и назовите его в основном файле следующим образом:

source=`cat ./secondary.file | grep -Ev "^#|^$" | tr -d "\r" | cut -d@ -f2`
echo $source
  grep -E "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)" | awk '{print $1"/"$3}'



... | $source | ...

но опять не повезло. Идеи заканчиваются ...