Могу ли я заменить часы в команде sed переменной? [Дело закрыто]
Я пытаюсь получить определенные временные метки (в моем случае каждые 15 минут) в лог-файле, используя команду sed в скриптах bash.
У меня вопрос, могу ли я заменить часы в команде на переменную?
Это сценарий, который я хочу:
#!/bin/bash
hour=`date +%H` #Current Hours e.g 14:00
sed -n '/$hour:15:00/,/$hour:30:00/p' file.log | nice grep Event
Результат будет печатать лог-файл с 14:15:00 до 14:30:00. Но есть проблема, когда диапазон составляет от 45 минут до 60 минут, что составляет 14:45 - 15:00. Есть ли решение для этого?
ОБНОВИТЬ
Эта проблема уже решена, команда ниже работает для меня.
sed -n "/${hour}:15:00/,/${hour}:30:00/p" file.log | nice grep Event
Другая справка: заменить строку в сценарии оболочки, используя переменную
Спасибо.
== Дело закрыто ==
1 ответ
Что ж, чтобы ответить на вопрос - да, вы бы взяли переменную из кавычек, а затем она должна использовать значение:
sed -n '/'$hour:15:00/,/'$hour':30:00/p' file.log | nice grep Event
Вы также можете просто использовать двойные кавычки вокруг выражения
sed -n "/${hour}:15:00/,/${hour}:30:00/p" file.log | nice grep Event