Это проблема САС.
Я работаю в сценарии Quartz Composer (Mac OSX) для:
- Открыть последний .log из каталога.
- Получение последней текстовой строки этого файла и удаление его первых 24 символов.
- Показывать последнюю строку каждый раз, когда внутри последней создается новая .log
Я думаю, это было бы так просто. На данный момент, я сделал это в КК, и это почти работает. Но у меня есть проблемы с командами SED в getFileName.sh и getLastLineOfLog.sh
getFileName.sh
#!/bin/bash
cd /Users/Me/
/bin/echo `ls -tr *.log | tail -1`
Здесь мне нужно открыть последний файл .log, с такой структурой имен 127.0.0.1, NUMBER.log , представляющей собой раздел NUMBER и состоящий из 5 цифр. Чем выше число, тем новее файл .log. Теперь он открывает только первый файл .log.
Вы знаете, как написать в SED правильные команды для этого, пожалуйста?
getLastLineOfLog.sh
#!/bin/bash
/usr/bin/tail -1 /Users/Me/$1 | sed 's/^.\{24\}//' > /Users/Me/$1.log
echo `/usr/bin/tail -1 /Users/Me/$1.log`
В этом втором файле я попытался получить последний файл загруженного файла .log и отобразить его без 24 первых символов. Это работает, но создает новый .log.log. (и т. д.) каждый раз, когда функция проходит, я хотел бы избежать этого.
Необходимо ли выводить результаты команд SED в новый файл? Как это можно сделать максимально просто?
Заранее спасибо.