Это вопрос SED.SED, Получение последнего имени файла
Я работаю в Quartz Composer (Mac OSX) сценарий:
- Открыть последний .log из каталога.
- Получение последней текстовой строки этого файла и удаление его 24 первых символов.
- Показать последней строке каждый раз, когда новый создается внутри последней .log
Я думаю, что это будет так просто. В этот момент я сделал это в КК, и он почти работает. Но у меня есть проблемы с командами СЭД в обоих 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 в новый файл? Как это можно сделать как можно проще?
Заранее спасибо.
Большое спасибо vlabrecque. – Pablo