Могу ли я заменить часы в команде 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
Другие вопросы по тегам