Ho un file .CSV con il formato seguente:
"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 colonna del file ha stringhe diverse. Devo filtrare il file in base al valore della 5a colonna. Diciamo, ho bisogno di un nuovo file dal file corrente che ha record solo con il valore "stringa 1" nel suo quinto campo.
Per questo ho provato il comando seguente,
awk -F"," ' { if toupper($5) == "STRING 1") PRINT }' file1.csv > file2.csv
ma mi stava lanciando un errore come segue:
awk: { if toupper($5) == "STRING 1") PRINT }
awk: ^ syntax error
awk: { if toupper($5) == "STRING 1") PRINT }
awk: ^ syntax error
Ho quindi usato quanto segue che mi dà un output dispari.
awk -F"," '$5="string 1" {print}' file1.csv > file2.csv
Produzione:
"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" ""
PS: ho usato il comando toupper per essere al sicuro, poiché non sono sicuro che la stringa sia in minuscolo o maiuscolo. Devo sapere cosa c'è che non va nel mio codice e se lo spazio nella stringa è importante durante la ricerca di un modello usando AWK.
'","'
delimitatore, altrimenti avrebbe risolto il mio problema ... ottima soluzione ...