línea de comando awk - eliminar línea

línea de comando awk - eliminar línea

según el código de publicación de la solicitud por separado.

salida de corriente

Name,Final Grade,Section
Andrew is an online student
Andrew,95,online
Brandon is an online student
Brandon,100,online
Chelsey is an onsite student
Chelsey,100,onsite
Deborah is an online student
Deborah,72,online
Erik is an online student
Erik,65,online
Arielle is an onsite student
Arielle,88,onsite
Shaun is an onsite student
Shaun,91,onsite
Ninette is an online student
Ninette,82,online
Nguyen is an onsite student
Nguyen,80,onsite

resultado que se supone que debo lograr

Andrew is an online student
Brandon is an online student
Chelsey is an onsite student
Deborah is an online student
Erik is an online student
Arielle is an onsite student
Shaun is an onsite student
Ninette is an online student
Nguyen is an onsite student

Básicamente, se trata de agregar la línea del archivo de entrada y no eliminar el encabezado. mi problema es eliminarlo

  #!/usr/bin/awk -f
    ##comment create awk script that will output the given data in the format given in word document
    ##comment specify the delimiter as ","
    BEGIN { FS = "," }
    
    /./ {
    ##comment check if the third field is online, if print online
    if ($3 == "online")
    printf("%s is an online student\n", $1)
    
    ##commentcheck if the third field is onsite, if print onsite
    if ($3 == "onsite")
    printf("%s is an onsite student\n", $1)
    } $1

Respuesta1

Dentro de un script de shell, $1se refiere al primer parámetro posicional (o argumento) con el que se llama al script; probablemente esté acostumbrado a usarlo para pasar un nombre de archivo a unPrograma awk desechable de un solo uso

Dentro de unPrograma ejecutable awksin embargo, los argumentos de la línea de comando se manejan internamente a través de la propia ARGVmatriz de awk y $1es el primer campo del registro actual. Fuera de un bloque de código es equivalente a

$1 != "" {
    print
}

que, por lo tanto, genera cada línea de entrada que contiene al menos un FScarácter que no es.

Así que elimina lo superfluo $1.

información relacionada