如何在awk中使用变量进行搜索
我对这个文件test1进行了如下处理如何在awk中使用变量进行搜索,awk,Awk,我对这个文件test1进行了如下处理 NAME1 04-03-2014 NAME2 04-04-2014 现在,我能够在从命令行执行时获得所需的o/p,但在将其用作变量时却无法获得。我的awk版本是3.1.5 从命令行开始工作:awk'$2=/04-03-2014/'test1 在bash/ksh脚本中不起作用: export m=04 d=03 y=2014 awk -v m="$m" -v d="$d" -v y="$y" '$2 = /m-d-y/' test1 OR awk -v
NAME1 04-03-2014
NAME2 04-04-2014
现在,我能够在从命令行执行时获得所需的o/p,但在将其用作变量时却无法获得。我的awk版本是3.1.5
从命令行开始工作:awk'$2=/04-03-2014/'test1
在bash/ksh脚本中不起作用:
export m=04 d=03 y=2014
awk -v m="$m" -v d="$d" -v y="$y" '$2 = /m-d-y/' test1 OR
awk -v m="$m" -v d="$d" -v y="$y" '$2 = m-d-y' test1 ### This replaces the 2nd field as -2010
我以前在printf语句中使用过awk中的变量来计算数字,但上面的例子似乎不太适合我。然而,我尝试了一种解决方法,即在一个文件中回显awk cmd,然后以脚本的形式执行该文件,从而获得所需的o/p,但是我认为这不是正确的方法,如果有人能给我一种更聪明的方法,我将不胜感激。这是一个猜测,但我打赌您正在尝试打印
$2
等于a的每一行从变量构造的特定字符串。如果是这样,那就是:
awk -v m="$m" -v d="$d" -v y="$y" '$2 == m"-"d"-"y' file
你想干什么?发布一个脚本,它不做任何你想做的事情,然后问我们如何修复它,而不告诉我们你想要什么,这让我们很难帮助你。您是在尝试为$2赋值,还是尝试测试$2是否等于某个值或其他值?您发布了一些示例输入。这是一个很好的开始,但是现在,在给定输入的情况下,发布您想要的输出。