2016-09-14 15 views
0

Привет, прямо сейчас Я извлекаю данные из sybase sql и любые данные, которые я получаю, вставляем в лист excel и отправляем почту. Проблема состоит в том, что все столбцы и их значения не входят в строку. Мне нужно, чтобы это было организовано в линию.удалите возврат каретки и подачу строки при вставке строк sql в Excel

Я сделал немного исследований для этого и нашел, что это происходит из-за возврата каретки и подачи строки. Я получаю строки, используя поле *, а не конкретный столбец.

sed "s/\r\n/g" $LOG > temp_log.txt

Используется выше команды, но и не использовать. Каким будет лучший способ удалить возврат каретки. Примеры кода были оценены с некоторым объяснением. Спасибо

+0

Если это bash: 'sed $ 's/[\ r \ n] // g'" $ LOG "> temp_log.txt', если не bash:' sed $ (printf 's/[\ r \ n ] // g ') «$ LOG»> temp_log.txt' –

ответ

1

EDIT: После первого комментария я заметил оригинальный вопрос.
Проблемы были вызваны предыдущим шагом. В предыдущем шаге линии были сфальсифицированы isql. Устранить повреждение будет очень сложно, так как трудно предсказать, какие линии должны быть вставлены вместе как одна запись.
Исходную проблему можно удалить, указав isql, чтобы добавить больше данных по одной строке: isql -w 2000.
Когда вы просто хотите узнать, как объединиться, вы можете использовать tr (используйте операции sed для операций с линиями). Объединение всех линий вместе можно с

cat $LOG | tr -d "\r\n" > temp_log.txt 

Когда $ LOG некоторый путь/файл с пробелами, вышеприведенная команда не будет выполнена. И, возможно, получить привык писать свой собственные переменные в нижнем регистре и использовать скобки для переменных:

cat "${log}" | tr -d "\r\n" > temp_log.txt 

В ищут отдельные символы, гайка для их комбинации, поэтому он будет также удалить один \n.

И если вы хотите, чтобы избежать cat, улучшить это

tr -d "\r\n" < "${log}" > temp_log.txt 

Когда вы знаете, что общая длина всех столбцов, вы можете попробовать fold -w totallength после tr, но это будет работать только тогда, когда ISQL имеет заполнял все поля пробелами (не вкладками) до общей длины.

+0

Похоже, что после проверки всех ваших предложений результаты теперь привязаны друг к другу в одной строке ... даже столбцы и их значения. –

+0

Я думал, это было то, что вы хотели. Если вы хотите, чтобы все заголовки в одной строке и каждой записи также были на одной строке, попробуйте использовать 'isql -w 2000' для расширения длины линии в выводе. –

+0

Спасибо, что сработал. Пожалуйста, измените ответ, прежде чем я его помечаю. –

 Смежные вопросы

  • Нет связанных вопросов^_^