Я написал сценарий оболочки для чтения всех строк из файла, разбил токены на каждую строку для извлечения конкретного слова. Первая строка читается правильно, но из второй строки ожидаемое слово не читается правильно. Ждем ваших предложений.
while read -ra line;
do
netmask="${line[5]}"
echo "netmask is $netmask" // first line reading is correct, second line onwards its showing
wrong output
IFS='.' tokens=($netmask)
prefix=0
for i in 0 1 2 3
do
var="${tokens[$i]}"
# i have a logic to calculate number of 1's in the number.
done
done < routes.sh
Содержание маршрута. sh являются
route add -net 10.212.220.0 netmask 255.255.255.0 gw 10.213.248.1
route add -net 10.212.220.0 netmask 255.255.128.0 gw 10.213.248.1
Фактический результат
netmask is 255.255.255.0
netmask is 128
Ожидаемый результат
netmask is 255.255.255.0
netmask is 255.255.128.0
Дополнительное примечание:
Моя цель - (концепция сети)
- Считать все строки из файла (каждая строка изображает маршрут)
- Из каждая строка извлекает маску сети (например: 255.255.255.255)
- Токен "255.255.255.255" с '.', поэтому мы получаем 4 числа, вычисляем число 1 в каждом токене, складываем их. Это будет длина префикса для сетевого IP.