Как читать из текстового файла с двоеточием в Bash - PullRequest
0 голосов
/ 09 мая 2019

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

Пример: kmyghz1:aa12345bb12345cckmyghz1

cat ./examples/secrets.txt | while  IFS=':' | read variable1 variable2 do \
        echo $variable1 \
        echo $variable2 \
done

Может кто-нибудь помочь?

Ответы [ 2 ]

1 голос
/ 09 мая 2019

IFS=: само по себе не является командой; это предварительная команда для команды read. Удалите символ трубы (|), разделяющий их. Вам также не хватает ни точки с запятой, ни символа новой строки перед ключевым словом do.

while IFS=: read variable1 variable2; do
    echo "$variable1"
    echo "$variable2"
done < ./examples/secrets.txt

Обратные косые черты не нужны, а расширения параметров всегда должны заключаться в кавычки.

0 голосов
/ 10 мая 2019

Спасибо за ваш вклад, и это правильный ответ, который работал для меня!

while IFS=: read -r userName password
do
 echo "$userName"
 echo "$password"
done < ./instabut/examples/secret.txt 
...