Чтение полей ввода, разделенных пробелами

Как я могу читать входные данные POSIX bash следующим образом:

 <name>,<tag1> <tag2> <tag3>… 

Я пробовал while read line;do done но это требует новых строк, все, что у меня есть, это пробелы.

(Является ли решение IFS ? Если да, то как? (Я не совсем понимаю IFS.))

  • Наследовать перенаправления IO из сценария в другой
  • Получить PID создания файла
  • Почему параметр $ 0 дает мне только базовое имя вместо полного пути после преобразования x-shellscript в x-исполняемый?
  • Как я могу найти строки (строки), которые третьи столбцы не являются цифрой / датой?
  • Как заменить строки-заполнители в документе содержимым из файла
  • Что быстрее - сценарии C или оболочки - и почему?
  • Как найти частоту появления строк, содержащихся в файле?
  • Как написать сценарий для подсчета общего количества файлов и каталогов в моем домашнем каталоге, а затем отобразить его?
  • One Solution collect form web for “Чтение полей ввода, разделенных пробелами”

    Используйте массив:

     echo '<name>,<tag1> <tag2> <tag3>' | while IFS=" ," read -a foo; do echo ${foo[@]}; done 

    Вывод:

     <name> <tag1> <tag2> <tag3> 

    От man bash :

    IFS: внутренний разделитель полей, который используется для разбиения слов после расширения и разделения строк на слова с помощью встроенной команды чтения.

    Linux и Unix - лучшая ОС в мире.