我可以用变量替换 sed 命令中的小时数吗? [结案]
Can I replace hours in sed command with variable? [Case Closed]
我试图在 bash 脚本中使用 sed 命令在日志文件中获取特定的时间戳(在我的例子中是每 15 分钟)。
我的问题是,我可以用变量替换命令中的小时数吗?
这是我想要的脚本:
#!/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
其他参考:Replace a string in shell script using a variable
谢谢。
== 结案 ==
好吧,回答这个问题 - 是的,您可以从引号中取出变量,然后它应该使用值:
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
我试图在 bash 脚本中使用 sed 命令在日志文件中获取特定的时间戳(在我的例子中是每 15 分钟)。
我的问题是,我可以用变量替换命令中的小时数吗?
这是我想要的脚本:
#!/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
其他参考:Replace a string in shell script using a variable
谢谢。
== 结案 ==
好吧,回答这个问题 - 是的,您可以从引号中取出变量,然后它应该使用值:
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