Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Сore dump / 6 сообщений из 6, страница 1 из 1
14.01.2010, 01:16
    #36408710
guest888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сore dump
В скрипте есть код переносящий все данные из одного файла ($tempfile1)
в определённое место (${templ}) другого файла ($tempfile2)

while read ins
do
cat $PTHTM |sed "s|${templ}|${ins}|" > $tempfile2
cat $tempfile2 >$PTHTM
done <$tempfile1


И если файл $tempfile1 маленький , т.е. или мало строк или строки короткие то всё OK

иначе Сore dump вылазит по памяти

Что бы это значило?
Help me please
...
Рейтинг: 0 / 0
14.01.2010, 09:42
    #36408884
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сore dump
Скорее всего, проблема именно когда строки слишком длинные (а сколько? и какой размер файла?) и валится в корку sed, ибо больше вроде нечему.
...
Рейтинг: 0 / 0
14.01.2010, 12:30
    #36409462
guest888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сore dump
Я тоже думал , что из за длинны строк но окзалось что и когда много строк то тоже самое.
Может как то по другому можно втавить один файл в другой?

А так тоже вываливалось но чаще: :)

insrez=`sed 's|$|<br>|' $tempfile1`
cat $PTHTM |sed "s|${templ}|`echo ${insrez}`|" > $tempfile2
cat $tempfile2 >$PTHTM
...
Рейтинг: 0 / 0
15.01.2010, 12:25
    #36411886
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сore dump
получается что shell валится при переборе большого файла. Странно.

Тогда наверное придётся тупо катить
если просто вместо одной строки - то так

{
cat $tempfile2 | sed -ne "1,/$templ/p" | grep -v $templ
cat $tempfile1
cat $tempfile2 | sed -ne "/$templ/,\$p" | grep -v $templ
} > final.txt
...
Рейтинг: 0 / 0
15.01.2010, 13:22
    #36412112
Мутаген
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сore dump
заменить это
Код: plaintext
cat $PTHTM |sed "s|${templ}|${ins}|" > $tempfile2
на это
Код: plaintext
perl -p "s|${templ}|${ins}|" < $PTHTM > $tempfile2
...
Рейтинг: 0 / 0
15.01.2010, 23:15
    #36413344
guest888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сore dump
Спасибо всем откликнувшимся- но для меня пока не просто понять все єти варианты.

Сейчас почти уверен что проблема в том что после n-й вставки результирующая
строка слишком длинная.

В CentOS-5.1
если вставляю перед sed выражение добавляющее перевод строки
ins="\n${ins}"
то строка переводится перед вставкой в нужное место ${ins}"

но
на HP-UX (другая машина и другая версия ЧЕГО ТО ????- сорри за безграмотность)
это не работает - просто добавляется 'n' к строке и НЕ валится в core но и всё не выводит- только часть( не считал сколько символов). T.е. \n что то ради меня делает. :)

Каким то ещё способом(более надёжным) перевести строку можно?

Спасибо заранее.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Сore dump / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]