Поиск команд из csv

#bash #shell #csv #command-line #terminal

#bash #оболочка #csv #командная строка #терминал

Вопрос:

Я пытаюсь выполнить несколько команд, которые определены в файле .csv. Таким образом, каждая строка в .csv — это команда, которая может быть выполнена на bash / terminal (но каждая строка отличается от входного файла).

Когда я попытался

 source <path to csv file>
 

Работала только последняя команда или последняя строка файла .csv. С предыдущими командами, похоже, не удалось найти входные файлы.

Когда я создал файл в оболочке и скопировал вставил точные команды из .csv :

 nano commandfile

<commands pasted from .csv>

source commandfile
 

теперь он работал для всех строк файла.

Может ли кто-нибудь более знающий, чем я, объяснить, почему первый пример не сработал? Как я могу заставить терминал получать все команды в формате .csv? Копировать вставить в nano texteditor — это нормально, но это не кажется очень… доработано.

Спасибо!

Комментарии:

1. Убедитесь, что у вас нет окончаний строк Windows в исходном командном файле, используя cat -v. Кроме того, я ожидаю, что запятые в исходном файле вызовут проблемы. Может быть, вы передали команды без запятых во втором случае?

2. Как мы можем воспроизвести эту проблему? В вопросе нет ничего, что мы могли бы скопировать и вставить в наши терминалы

3. @granny : Помимо других комментариев, приведенных здесь, обратите внимание, что если это действительно файл в формате CSV, он не будет исполняться таким образом, даже если он состоит только из одного столбца. Одной из причин является то, как CSV определяет форматирование содержимого ячейки, которое содержит разделитель полей.

4. Обычно CSV обозначает файл значений, разделенных запятыми, который не содержит команд. Таким образом, просто поиск этого файла в большинстве случаев приведет к сбоям сценария оболочки. Теперь я вижу два варианта (1) Имеет ли CSV для вас то же значение, что и для всех нас, и (2) если он имеет то же значение, не хотите ли вы загружать команды из определенного столбца? Если да, не могли бы вы привести нам пример вашего CSV?

5. спасибо всем за предложения — оказывается, в конце всех команд были окончания строк Windows (^M). Когда я удалил их и снова попытался получить csv, все строки работали.