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}'