假设我有一个字段以yyyymmdd
格式指示日期,并且我想过滤大于该字段给定值的行。
如果我在if
语句中使用以下awk
条件,则效果很好
if ($1> "20200315")
但是假设我将2020定义为yyyy
,将03定义为mm
,然后将这些变量作为awk -v ym=${yyyy}${mm}
传入
if
语句中的awk
条件应如何显示?我尝试了以下操作,但未过滤任何行。
if ($1> "ym15")
所以问题出在"ym15"
,因为当用引号引起来时,awk
不会将ym
视为变量。解决方案是要么取消引用变量,然后仅引用相邻的文本“ 15”
if ($1 > ym "15")
OR
将变量放在文本之间,并用空格分隔。 More on this behavior
if ($1 > ym 15)