Я читаю текстовый файл по строкам в сценарии bash. Текстовый файл, который я читаю, является разделенным вкладкой csv. Однако, когда я пытаюсь вырезать строку чтения, это не работает, кажется, что \ t преобразуется в пустое место где-то t Вкладка потеряна в скрипте bash
Ниже код не является что я делаю окончательно - я еще не выполнил фактическую рабочую нагрузку для кода, пока данные не будут надежно прочитаны.
for ((currlineno=2 ; $currlineno <= $maxlines ; currlineno++)); do
currline=$(sed -n "$currlineno"p "$IMPORT_TABLE".csv)
echo $currline |cut -f2
done
теперь, когда я меняю две строки, как показано ниже работает
for ((currlineno=2 ; $currlineno <= $maxlines ; currlineno++)); do
currline=$(sed -n "$currlineno"p "$IMPORT_TABLE".csv |tr '\t' ';')
echo $currline |cut -f2 -d ';'
done
, но я не могу это сделать так, как мой текстовый файл также содержит «;» ',' а также '.' в полях. Tab - единственный приемлемый вариант для меня, поскольку мои поля никогда не будут содержать его.
Цитата: 'echo '$ currline" | cut -f2' – anubhava
Или лучше пропустить 'currline' и использовать:' sed -n '$ currlineno "p" $ IMPORT_TABLE ".csv | cut -f2' – anubhava
Спасибо. На самом деле, мне нужно будет извлечь каждое поле с вырезом, и я хочу, чтобы не читать файл для каждых 30 полей. Поэтому цитирование переменной выполняло эту работу для меня. THANKS –