2014-01-08 2 views
0

У меня проблема, я уверен, что это что-то очень простое, что я уже смотрю, но, похоже, я не вижу его.Итерация через массив, использование содержимого в виде файла

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

fullProc=$(grep "WNDP_Server" $1 | grep -v "#" | cut -f 2 | grep -v /nwsys/release/conf/save" | cut -d '/' -f5) 
for i in "${fullProc[@]}" 
do 
    echo "$host$HostName" > "$i" 
    grep "WNDP_Server: * " $1 | grep -v "#" | cut -f 2-3 | grep -v "/nwsys/release/conf/save" | grep -w "$i" | cut -f 2 >> "$i" 
    grep "WNDP_Port:" $1 | grep -v "#" | grep -w "$i" | cut -f 3 >> "$i" 
    ProcName=$(grep "WNDP_Server: * " $1 | grep -v "#" | cut -f 2 | grep -v "/nwsys/release/conf/save" | cut -d '/' -f5 | grep -w "$i" | cut -d '.' -f1) 
    echo "Process: $ProcName" >> "$i" 
    grep -w "FilterMode:" $1 | grep -v "#" | cut -f 2-3 | grep -w "$i" | cut -f2 >> "$i" 
    grep -w "Filter:" $1 | grep -v "#" | cut -f 2-3 | grep -w "$i" | cut -f2 >> "$i" 
done 

Что я могу получить, это единственный файл со всей необходимой информацией. вместо нескольких файлов, каждый со своей соответствующей информацией.

Если вам нужно уточнить это, пожалуйста, дайте мне знать.

$ i - это имя файла.

+1

Показать образец ввода и вывода. – anubhava

+1

Какие файлы вы хотите получить? – janos

+0

Например $ fullProc = (xprofd.cfg, xprofd.cfg2). Поэтому я пытаюсь заполнить xprofd.cfg определенной информацией и перебрать в xprofd.cfg2 и заполнить его своей собственной информацией. – TheHad

ответ

0

Вы должны назначить fullProc так:

fullProc=($(grep ...)) 

Обратите внимание на дополнительные (...) вокруг $(grep ...).

В противном случае все совпадения grep будут находиться в одной строке.

+0

Perfect. Спасибо, janos !!!! – TheHad

Смежные вопросы