conforme código de postagem da solicitação separado.
saída atual
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
saída que devo alcançar
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
basicamente, está adicionando a linha do arquivo de entrada e não removendo o cabeçalho. meu problema é removê-lo
#!/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
Responder1
Dentro de um script de shell,$1
refere-se ao primeiro parâmetro posicional (ou argumento) com o qual o script é chamado - você provavelmente está acostumado a usar isso para passar um nome de arquivo para umPrograma One-Shot Throwaway awk
Dentro de umPrograma executável awkentretanto, os argumentos da linha de comando são tratados internamente através do próprio ARGV
array do awk e $1
é o primeiro campo do registro atual. Fora de um bloco de código é equivalente a
$1 != "" {
print
}
que está, portanto, exibindo cada linha de entrada que contém pelo menos um não- FS
caractere.
Portanto, remova o supérfluo $1
.