![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Есть ли возможность с SED или AWK?
Привет всем,
Я tring, чтобы написать скрипт, который следует читать первую строку в файл и выполнять некоторые задачи. После того, как эта задача завершить следующую строку в файл должен быть прочитан задача должна быть выполнена. Таким образом можно оказывать противодействие подобное, в SED или AWK, что приращения и тем самым привести к следующей строке следует читать? Далее, как я подумал сделать это, но она не работает, а я не могу присвоить значение $ C, чтобы прочитать строку: Код:
C=1 #counter while true do LOG=`sed '$C!d' /var/log/somelog.log` # perform the task on $LOG # C=`expr $C + 1` done |
|
||||
|
Базовые сценарии концепции:
Код:
while read line do #perform the task on "$line" done < /var/log/somelog.log |
|
||||
|
Спасибо за ответ danmero.
Я пытался что раньше. Когда сценарий читает через somelog.log и достигает EOF это выходы. Но я не хочу его, чтобы выйти. Если EOF достигается сценарий следует ждать новой строки добавляется в somelog.log, а затем выполнить задачу. Кроме того, в новой для somelog.log будут добавлены случайным интервалом. Любые предложения о том, как есть сценарий подождать, когда ее остановили, а не покинул и по-прежнему, когда новая линия добавляется? Спасибо. |
|
||||
|
Цитата:
Я не пробовал альтернативный шаг еще, как я не знаком с logrotates. Будет ли какой-либо другой способ сделать это? Спасибо. |
|
|||||
|
Хмм - попробуйте что-нибудь вроде:
Код:
# tail -f infile | while read line; do echo $line | tr "[a-z]" "[A-Z]"; done HELLO WORLD Код:
# echo hello >> infile # echo world >> infile |
|
||||
|
Спасибо за ответ tytalus.
Я думаю, это не работа для меня, как мой скрипт содержит 10 логики в нем. Поэтому я взял другой маршрут и используя CRON и Л.С. и перемещение файлов примерно раз работа над я ему сделать эту работу. Но было бы приятно и легче, если бы я мог просто выяснить способ сделать это, как я хотел. Тем не менее я буду продолжать идти путем, и посмотреть, смогу ли я сделать это так, как я хотел бы это сделать. Спасибо еще раз. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|