Приведенный выше цикл while хорошо работает в качестве простой альтернативы sed и awk, если у вас есть большой контроль над отображением строк текста в файле. Команда чтения также может использовать указанный разделитель, используя флаг -d.
Еще один простой пример:
Я использовал mysql, чтобы получить список пользователей и хостов, поместив его в файл / tmp / userlist с текстом, как показано:
user1 host1
user2 host2
user3 host3
Я передал эти переменные в команду mysql, чтобы получить информацию о грантах для этих пользователей и хостов и добавить в / tmp / grantlist:
cat /tmp/userlist | while read user hostname;
do
echo -e "\n\nGrabbing user $user for host $hostname..."
mysql -u root -h "localhost" -e "SHOW GRANTS FOR '$user'@$hostname" >> /tmp/grantlist
done