遇到麻烦awk
。基本上我要做的是在文件中搜索这个特定的字符串。然后打印该行的第三个元素。
这是我所做的:
awk -F' / ' '$1=="$log"{print $3}' schedlist
出于某种原因,这不起作用,但如果我这样做:
awk -F' / ' '$1=="20121213-20:58:53"{print $3}' schedlist
该代码有效。但我需要让用户输入log
姓名。
您需要使用该-v
选项将 shell 变量传递给awk
,如下所示:
awk -v tstamp="$log" -F' / ' '$1==tstamp{print $3}' schedlist
(将变量名称更新为tstamp
(如评论中所述),因为log
与 awk 内置函数冲突log
。)
你有几个选择。使用变量(带有-v
或仅作为赋值,但不能将其命名为“log”,因为这是一个 awk 函数):
awk -F' / ' '$1 == s {print $3}' s="$log" schedlist
以不同的方式引用您的脚本:
awk -F' / ' '$1 == "'"$log"'" { print $3}' schedlist