Tengo un archivo CSV, que contiene algo así:
"1","32","1","2"
"2","2","22","2"
"3","72","5","2"
"4","36","22","2"
Quiero mostrar solo el primer campo si el tercer campo contiene el valor: 22. En mi ejemplo, quiero tener:
2
4
Estaba pensando algo como esto:
awk -F , -v OFS=, "{if ($3=="22")} {print $1}" myfile.csv
Cómo puedo hacer eso ? Gracias :)
Respuestas
2 para la respuesta № 1Si está bien, para mantener las comillas:
awk -F, "$3==""22""{print $1}" test.csv
La salida en este caso:
"2"
"4"
Para deshacerte de las comillas, puedes hacer esto:
awk -F" "$6==22{print $2}" test.csv
Salida:
2
4
En este caso, las comillas se tratan como delimitadores. Por lo tanto, tenemos que ajustar la numeración de las columnas.
Por supuesto, también puede reemplazar las comillas:
awk -F, "$3==""22""{str=$1; gsub(""","",str); print str}" test.csv
1 para la respuesta № 2
Aquí hay un comando awk más simple para hacer su trabajo:
awk -F "","|"" "$4 == 22{print $2}" file
2
4
0 para la respuesta № 3
En mi opinión, lo más simple es deshacerse de las comillas dobles y luego hacer lo que quieras:
$ awk -F, "{gsub(/"/,"")} $3==22{print $1}" file
2
4