Ответ на вопрос Reading file line by line (with space) in Unix Shell scripting - Issue обычно не работает в отличие от локации 'C'.bash чтение полной строки из stdin или while цикл с пробелами без обрезки пустых символов
Bash меня удивляет, потому что внутренняя функция «read» обрезает белые символы. Я не нашел полного решения, только две частичные. то я описываю его здесь.
например, у вас есть текстовый файл для строк, содержащих конечные пробелы. я пишу кавычки для ясности:
'line 1 without ending spaces'
'line 2 with ending spaces '
при вызове этого:
cat somefile.txt|while read LINE; do echo xx"$LINE"xx; done
вы увидите:
'line 1 without ending spaces'
'line 2 with ending spaces'
взгляд на это, вторая линия обрезается пространство! Как предотвратить это? это мой ответ выше:
IFS = 0 не решает проблемы, так как конечные пробелы по-прежнему обрезаются при установке любого другого языка в вашей системе. – Znik
Откуда вы получили 'IFS = 0'? Я написал 'while IFS = read ...', что означает пустую 'IFS' – anubhava
[Вот рабочая демонстрация] (http://ideone.com/HTpTCq) – anubhava