Ich bin sehr neu in AWK, obwohl ich zuvor die Eingabeaufforderung/Terminal verwendet habe.AWK-Syntaxfehler bei Verwendung der IF-Anweisung
Ich habe dieses Skript unten, wo ich Teilmengen von Daten basierend auf Country Code und State Code erstellen. Aber ich bekomme einen Syntaxfehler.
BEGIN{
FS = "\t"
OFS = "\t"
}
# Subset data from the states you need for all years
if ($5 == "IN-GA" || $5 == "IN-DD" || $5 == "IN-DN" || $5 == "IN-KA" || $5 == "IN-KL" || $5 == "IN-MH" || $5 == "IN-TN" || $5 == "IN-GJ"){
if (substr($17, 1, 4) == "2000"){
print $5, $12, $13, $14, $15, $16, $17, $22, $23, $24, $25, $26, $28 > "Y2000_India_sampling_output.txt"
}
}
auf Cygwin verweise ich auf das Skript und ich führen Sie die folgenden Zeilen Code und sehen Sie die Syntaxfehler sofort:
$ gawk -f sampling_India.awk sampling_relFeb-2017.txt
gawk: sampling_India.awk:20: gawk if ($5 == "IN-GA" || $5 == "IN-DD" || $5 == "IN-DN" || $5 == "IN-KA" || $5 == "IN-KL" || $5 == "IN-MH" || $5 == "IN-TN" || $5 == "IN-GJ"){
gawk: sampling_India.awk:20: ^syntax error
Irgendwelche Gedanken?
Danke @anubhava. Das funktioniert!. Ich bin neugierig. Wenn ich es nicht bis zum Jahr 2000 unterteilen wollte, und ich entferne die '&& substr ($ 17, 1, 4) == "2000"' - sollte ich alle Daten erhalten, die die betroffenen Staaten betreffen, richtig? Obwohl für alle Jahre? –
Ja, das ist richtig – anubhava