Tengo un archivo .CSV con el siguiente formato:
"column 1","column 2","column 3","column 4","column 5","column 6","column 7","column 8","column 9","column 10
"12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013",""
"23455","12312255564","string, with, multiple, commas","string with or, without commas","string 2","USD","433","70%","07/15/2013",""
"23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013",""
"46476","15467534544","lengthy string, with commas, multiple: colans","string with or, without commas","string 2","CAND","388","70%","09/21/2013",""
La quinta columna del archivo tiene diferentes cadenas. Necesito filtrar el archivo según el valor de la quinta columna. Digamos que necesito un nuevo archivo del archivo actual que tiene registros solo con el valor "cadena 1" en su quinto campo.
Para esto probé el siguiente comando,
awk -F"," ' { if toupper($5) == "STRING 1") PRINT }' file1.csv > file2.csv
pero me estaba arrojando un error de la siguiente manera:
awk: { if toupper($5) == "STRING 1") PRINT }
awk: ^ syntax error
awk: { if toupper($5) == "STRING 1") PRINT }
awk: ^ syntax error
Luego usé lo siguiente que me da una salida extraña.
awk -F"," '$5="string 1" {print}' file1.csv > file2.csv
Salida:
"column 1" "column 2" "column 3" "column 4" string 1 "column 6" "column 7" "column 8" "column 9" "column 10
"12310" "42324564756" "a simple string with a comma" string 1 without commas" "string 1" "USD" "12" "70%" "08/01/2013" ""
"23455" "12312255564" "string with string 1 commas" "string with or without commas" "string 2" "USD" "433" "70%" "07/15/2013" ""
"23525" "74535243123" "string with commas string 1 "string with or without commas" "string 1" "CAND" "744" "70%" "05/06/2013" ""
"46476" "15467534544" "lengthy string with commas string 1 "string with or without commas" "string 2" "CAND" "388" "70%" "09/21/2013" ""
PD: Utilicé el comando toupper para estar en el lado seguro, ya que no estoy seguro de si la cadena estará en mayúsculas o minúsculas. Necesito saber qué está mal con mi código y si el espacio en la cadena importa mientras busco un patrón usando AWK.
'","'
delimitador, de lo contrario habría resuelto mi problema ... gran solución ...