Задать вопрос
@Konkase

Как назначать переменные некоторым словам строки в цикле bash?

Добрый день!

Иногда требуется повыдёргивать некоторые слова из строк файла, обычно это делаю так:

cat ./file | while read line; do
	f=`echo "$line" | cut -f1 -d":"`
	s=`echo "$line" | cut -f2 -d":"`
	t=`echo "$line" | cut -f3 -d":"`
done


И уже с этими переменными работаю.
Есть способ более проще назначать переменные?
  • Вопрос задан
  • 2277 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vinca
$ echo "var1:var2:var3" | tr ':' ' ' | while read a b c; do echo "$a / $b / $c"; done
var1 / var2 / var3

read умеет работать с несколькими переменными, разделенные пробелом, по этой причине нужно заменить ":" на " " (пробел) - например с помощью tr. Данная конструкция while read a b c, подойдет для фиксированного набора значений в строках файла ./file - в данном случае их 3-и, но Вы можете сделать больше. =)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы