2015-08-02 3 views
1

пока может показаться простым, я не могу понять это, и я не хочу усложнять его с помощью python. Я пытаюсь получить 2 переменные из «cat file.txt» в цикле. Для только одной переменной это просто:Простой сценарий сценария bash 2 переменные

for i in `cat mylist`; do 
    echo ${i} 
done 

В этом примере мы имеем только одно слово в каждой строке.

Мне нужно сделать две отдельные переменные из строки, содержащей 2 слова/числа на строку, разделенные вкладкой или пробелом.

[email protected]#cat iplist 
192.168.0.1 device1 

192.168.0.2 device2 

192.168.3.2 device3 

ответ

3

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

while read -r a b; do 
    # do stuff with "$a" and "$b" 
done < file 
+0

что делает флаг -r делать? – amdixon

+1

Он предотвращает анализ синей обработки, поэтому, если у вас есть значение с '\ t', то с' -r' оно останется таким же в переменной, без '-r' будет преобразовано в вкладку. – user000001

+0

Не могу приспособить его к моим потребностям (то есть я не могу понять это), я уже видел этот синтаксис, используемый вокруг. – blackbrayn

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