Рейтинг:-1

Эхо-вывод с переменной, ведущей себя по-разному

флаг us

У меня есть два файла ниже: имена.csv

Имя Фамилия
Сайлас, Стронг
Артуро Зи, Циммерман

и тест.ш

#!/бин/баш

в то время как IFS=, читать -r поле1 поле2
делать
    имя=$поле1.$поле2
    echo "Вот имя $name"
    echo "$name включено в файл"
сделано < имена.csv

Когда test.sh запускается. Я получаю следующий вывод, где имя отсутствует во втором выводе эха.

Вот имя Имя.Фамилия
 включен в файл
Вот имя Сайлас .Стронг
 включен в файл
Вот имя Артуро Зи. Циммерман
 включен в файл

Как мне получить следующий вывод, который будет возвращен вместо этого:

Вот имя Имя.Фамилия
Имя.Фамилия включена в файл
Вот имя Сайлас .Стронг
Сайлас .Стронг включен в файл
Вот имя Артуро Зи. Циммерман
Артуро Зи. Циммерман включен в файл

Спасибо

флаг hr
Скорее всего, ваш файл CSV имеет окончания строк в стиле DOS (CRLF).
FedKad avatar
флаг cn
Вы уверены, что правильно набрали второе `$name` в своем скрипте? В моей системе ваш скрипт выдал ожидаемый результат. Однако вы можете запустить `dos2unix names.csv` перед запуском сценария, чтобы убедиться, что предыдущий комментарий верен.
Emma avatar
флаг us
@steeldriver, в этом была проблема ... мой CSV имел формат CRLF. Преобразование его в LF исправило файл Спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.