Bash итерации каждой переменной и добавление номера - PullRequest
0 голосов
/ 23 октября 2019

Я обрабатываю файл 7 PCAP путем разделения файла на основе MAC-адреса, это нормально, но у меня есть различные переменные, в которых я хочу перебрать

$ {macs [*]} - у меня есть список10 различных MAC-адресов, которые я хотел бы пройти через них $ {devices [0]} - у меня есть список из 10 устройств, например, Samsung, Phillips. Я хочу добавить число к каждому файлу

for pcf in $pcap_file
do
    for mac in ${macs[*]}
       do
        echo "$mac" >&2
        /usr/bin/tshark -r "$pcf" -Y "eth.addr eq $mac" -w ${devices[0]}.pcap
     done
done 
At the moment I am manually uncommenting/commenting them 
macs=(  d0:45:a8:00:67:5e  ) 
macs=(  44:65:0d:56:cc:d3  ) 
macs=(  70:ee:50:34:34:43 ) 
devices=('Samsunghub_1' 'Samsunghub_2' 'Samsunghub_3' 'Samsunghub_4' 'Samsunghub_5' 'Samsunghub_6' 'Samsunghub_7')
devices=('Echo_1' 'Echo_2' 'Echo_3' 'Echo_4' 'Echo_5' 'Echo_6' 'Echo_7')
devices=('netamo_1' 'netamo_2' 'netamo_3' 'netamo_4' 'netamo_5' 'netamo_6' 'netamo_7')

Я хочу пройтись по каждому извлечению файла PCAP на основе MAC-адреса, затем пометить каждое на основе «устройств», но добавить номер в конце

1 Ответ

1 голос
/ 23 октября 2019

Мне не совсем понятно, что вы делаете на основе своего поста, но если вы делаете подсчет элементов, может быть более полезно структурировать устройства как ассоциативный массив. Затем просто увеличивайте значение по мере увеличения вашего счета.

declare -A AA_devices AA_devices[Samsunghub]="7" AA_devices[Echo]="7" AA_devices[netamo]="7"

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

Если вы подсчитываете, какое устройство на основе какого MAC-адреса, вы можете установить оператор if / then, который увеличивает число устройств.

for mac in "${macs[@]}" ; do if mac = xx:xx:xx:xx ; then AA_devices[netamo]+=1

В противном случае, дайте мне знать, где я неправильно понял, и я попробую еще раз!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...