$ awk -F',' -v y=1952 'BEGIN{print y":"} {line=$0;gsub("\"","");} $1+0<=y && y<=$2+0 {print line}' file
1952:
"1949","1962","FOO","BAR","BLUE"
Como funciona
-
-F','
Isso define o separador de campo como uma vírgula.
-
-v y=1952
Isso define uma variável awk
y
com valor 1952. -
BEGIN{print y":";}
Isto imprime a linha de cabeçalho.
-
line=$0; gsub("\"","")
Isso salva a linha original como
line
. Em seguida, remove as aspas duplas dos campos. -
$1+0<=y && y<=$2+0 {print line}
Se o valor de
y
estiver entre os valores da primeira e da segunda colunas, imprima o originalline
.Na linha acima, zero é adicionado aos números nas primeiras e segundas colunas. Isso garante que o awk trate essas colunas como números, não como strings e, consequentemente, faça comparações numéricas, não de strings.