Страница 1 из 1
Обработка строк файла
Добавлено: 2012-05-31 10:56:57
m0ps
Значит появилась следующая задача:
есть файл, следующего вида:
Нужно передать его содержимое в переменную построчно, обрезав лишние пробелы в конце и досовские переводы строки, преобразовав переменные следующим образом:
Собственно как построчно передать в переменную вопроса у меня не возникает, меня интересует как обрезать пробелы и удалить досовские переводы строк.
Re: Обработка строк файла
Добавлено: 2012-05-31 11:19:54
Bayerische
Re: Обработка строк файла
Добавлено: 2012-05-31 11:27:20
m0ps
и? чем мне это должно помочь? окончание строки я могу и через dos2unix пофиксить
Re: Обработка строк файла
Добавлено: 2012-05-31 11:34:22
Bayerische
меня интересует как обрезать пробелы и удалить досовские переводы строк
Re: Обработка строк файла
Добавлено: 2012-05-31 11:44:29
Bayerische
Re: Обработка строк файла
Добавлено: 2012-05-31 11:57:15
m0ps
неужели сложно посмотреть на пример исходного файла и результата что бы не предлагать то, чего не требуется
Re: Обработка строк файла
Добавлено: 2012-05-31 12:18:23
kpp
Можно так:
Код: Выделить всё
tr -s "\r" "\n" < file_in | sed 's/ \{2,\}/ /g; s/\(^.*[^ ]\)$/\1 /; s/ /\\\./g'
или так:
Код: Выделить всё
tr -s "\r" "\n" < file_in | tr -s "[ ]" | sed 's/\(^.*[^ ]\)$/\1 /; s/ /\\\./g'
где
можно заменить на
В результате выполнения
ничего не изменится, символы переводов строк не удалятся.
Re: Обработка строк файла
Добавлено: 2012-05-31 12:27:44
kpp
Можно укоротить:
Код: Выделить всё
tr -s "\r" " \n" < file_in | sed 's/ \{2,\}/ /g; s/ /\\\./g'
Код: Выделить всё
tr -s "\r" " \n" < file_in | tr -s " " | sed 's/ /\\\./g'
Re: Обработка строк файла
Добавлено: 2012-05-31 13:38:08
m0ps
kpp писал(а):Можно укоротить:
Код: Выделить всё
tr -s "\r" " \n" < file_in | sed 's/ \{2,\}/ /g; s/ /\\\./g'
Код: Выделить всё
tr -s "\r" " \n" < file_in | tr -s " " | sed 's/ /\\\./g'
спасибо, это уже близко к тому что мне надо.
единственная проблема - последняя строка должна быть пустая, это как-то можно обойти?
Re: Обработка строк файла
Добавлено: 2012-05-31 13:46:49
kpp
Имеется в виду, что в исходном файле после последней строки нет перевода строки?
Re: Обработка строк файла
Добавлено: 2012-05-31 13:49:36
m0ps
исходный файл создается под виндой.
Re: Обработка строк файла
Добавлено: 2012-05-31 13:54:35
kpp
Код: Выделить всё
tr -s "\r" " \n" < vhod2 | sed 's/\(^..*$\)/\1 /; s/ \{2,\}/ /g; s/ /\\\./g'