Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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变量_Awk - Fatal编程技术网

awk-中频条件下的awk变量

awk-中频条件下的awk变量,awk,Awk,如何使用awk命令中的变量在if条件下读取文件的列 e、 g.假设阅读下面示例文件的第2列,其中fcolumn1的值为2,startdate为2014-09-22 00:00:00,以及enddate为2014-09-23 00:00 abcd,2016-04-23 02:35:34,sdfsdfsd sdsd,2016-04-22 02:35:34,sdfsdfsd 以下命令工作: awk -v startdate="$startdate" -v enddate="$enddate" -F"

如何使用
awk
命令中的变量在
if
条件下读取文件的列

e、 g.假设阅读下面示例文件的第2列,其中
fcolumn1
的值为
2
startdate
2014-09-22 00:00:00
,以及
enddate
2014-09-23 00:00

abcd,2016-04-23 02:35:34,sdfsdfsd
sdsd,2016-04-22 02:35:34,sdfsdfsd
以下命令工作:

awk -v startdate="$startdate" -v enddate="$enddate" -F"," '
{ 
    if ($2>=startdate && $2<enddate)
    { 
        print $2
    }   

}'

首先,
if
块是多余的,因为
awk
程序遵循以下(简化)结构:

 CONDITION { ACTIONS } CONDITION {ACTIONS} ...
您可以在不使用
if
语句的情况下写入条件:

awk '$2>=startdate && $2<enddate { print $2 }' file

我想让$2从变量变为动态变量。如果你想让列号变为变量,你可以使用:
awk-v col=2'$col
awk '$2>=startdate && $2<enddate { print $2 }' file
awk -v col=2 '{print $col}'