Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在awk中使用变量进行搜索_Awk - Fatal编程技术网

如何在awk中使用变量进行搜索

如何在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

我对这个文件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 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是否等于某个值或其他值?您发布了一些示例输入。这是一个很好的开始,但是现在,在给定输入的情况下,发布您想要的输出。