запутанный вывод во время цикла через CSV - PullRequest
0 голосов
/ 19 марта 2020

У меня есть некоторые файлы, которые я хотел бы переименовать - пытаясь сделать это в bash сценарии в качестве учебного упражнения в bash, вот что у меня есть

#!/bin/bash
FOLDER=/Users/annaleigh/Documents/data/geo_ibm/

while IFS=, read -r col1 col2
do
oldfile="$FOLDER""$col1"".SJ.out.tab"
newname="$FOLDER""$col2""$col1"".SJ.out.tab"

echo $oldfile
echo $newname

done < /Users/annaleigh/Documents/GitHub/muscle/rename.csv

Однако результаты ... странные, и я не понимаю, почему

/Users/annaleigh/Documents/data/geo_ibm/16_9_5_18.SJ.out.tab
16_9_5_18.SJ.out.tabuments/data/geo_ibm/PM_3

`Эта строка ведет себя как ожидалось oldfile="$FOLDER""$col1"".SJ.out.tab"

Однако эта строка: newname="$FOLDER""$col2""$col1"".SJ.out.tab" добавляет $ col1 и расширение на фронт, но с некоторым расширением? Я понятия не имею, что здесь происходит.

1 Ответ

1 голос
/ 19 марта 2020

Это происходит, когда ваш файл содержит окончания строки DOS. Вы можете исправить это, выполнив следующую команду.

dos2unix /Users/annaleigh/Documents/GitHub/muscle/rename.csv

См. BashFAQ # 052

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...