![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Ожидать увеличения размера буфера, пожалуйста, помогите | jaduks | Shell программирование и сценарии | 1 | 10-12-2007 12:07 PM |
| Как увеличить размер экрана консоли буфер? | the_learner | UNIX для чайников Вопросы И Ответы | 5 | 04-25-2007 06:31 PM |
| Как увеличить размер буфера в Unix | ziabegg | UNIX для чайников Вопросы И Ответы | 3 | 01-05-2007 03:17 PM |
| Как увеличить размер буфера в Unix | ziabegg | UNIX перспективных И опытных пользователей | 0 | 12-23-2006 03:11 AM |
| Размер кэш-буфера | gsr_kashyap | Red Hat | 0 | 09-07-2006 02:34 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Увеличение размера буфера для чтения длительный строк
Привет Все,
Я пытаюсь читать выходе из команды. Выходной формат выглядит следующим образом: Код:
Thursday 13 Mar 2008 Information This is sample text Friday 14 Mar 2008 Warning This is one more sample text Эта проблема иногда 2-й линии в длину и более, которые гласят две строки в Unix. Но я хотел бы прочитать, что в одной строке сам. Можно ли увеличить размер буфера строки в Unix? Я надеюсь, что этот вопрос ясен. Привет, Ssunda. |
|
||||
|
Ваша проблема не является "буфером". Если вы используете команду, которая гласит одна линия в то время, он будет идти еще долго линия, но при входе больше, чем одну строку, то это будет только прочитать первые строки.
Давайте перефразировать эту проблему. Как вы знаете, когда что-то более чем на одну строку? Потому что следующая строка будет не даты. Таким образом, вы можете создать простой парсер для этого формата, в котором признается все, вплоть до следующей даты ввода в качестве одной записи. Это, вероятно, лучше всего осуществлять с скриптовых языков, таких как AWK или Perl или Python, но лишь ради аргумента, то вот быстрый и грязный раствор в сценарий оболочки: Код:
#!/bin/sh
date=
input=
nl="
" # yes, that's opening quote, newline, closing quote
while read line; do
case $line in
*day\ [0-9][0-9]\ *\ [12][0-9][0-9][0-9]\ *)
# warning! y3k problem
# warning! fragile matching, would be better with regex
# warning! basically untested code anyway
case $date in '') ;;
*) echo "Result for '$date'":
echo "$input" ;;
esac
input=
date=$line
;;
*)
input="$input${input:+$nl}$line"
;;
esac
done
# whatever is left at end of file is a result too
echo "Result for '$date'":
echo "$input"
|
|
||||
|
HI эры
Спасибо за ответ. Нашли вашу точку. Но это все равно, что там мы сможем увеличить размер буфера? В SQL, мы используем 'установить линию 200' .. достичь того же. Спасибо заранее. |
|
||||
|
Ваш вопрос не является четко определенной. Размер буфера чего? Какие команды вы используете для чтения выход? Если он имеет ограничение на сколько строк будет читать, можно найти вариант, который не имеет такого ограничения?
(Например, GNU coreutils инструменты зачастую лучше в этом отношении, чем любой эквивалентный инструмент входит в комплект поставки коммерческих ОС.) |
![]() |
| Закладки |
| Теги |
| Perl, Perl Regex, Regex |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|