awk使用间隔

时间:2015-04-23 20:17:19

标签: shell unix awk

我有这个文件

goodtime 20:30 21:40
badtime 19:52 24:00

当我输入例如21:0021:15时,我应该goodtime

所以这是我的剧本

#!/bin/sh

last > duom.txt

grep -F 'stud.if.ktu.lt' duom.txt > ktu.txt

echo "Nurodykite laiko intervala "
read h
read min
read h2
read min2

awk '{if ($2 ~ /$h.$m/ && $3 ~ /$h2.$min2/) print $1}' data.txt

但我没有得到任何结果。

1 个答案:

答案 0 :(得分:1)

这个问题:

awk '{if ($2 ~ /$h.$m/ && $3 ~ /$h2.$min2/) print $1}' data.txt

您是否尝试在单引号字符串中使用shell变量。您需要使用-v选项将shell变量传递给awk:

awk -v patt1="$h.$min" -v patt2="$h2.$min2" '
    $2 ~ patt1 && $3 ~ patt2 {print $1}
' data.txt

但是,考虑到你的样本输入,这与任何东西都不匹配。

在你的要求得到澄清之前,我无法理解逻辑。