Eh bien, clairement, mawk ne dispose pas d'une fonction strftime.
Je n'ai pas mawk ici, donc non testé:
awk -f script -v the_year=$(date "+%Y") inputFile
et script
a (combinant les deux expressions régulières:
$2 ~ /^[HB].*n$/ { print the_year }
Si l'année devrait venir de 0 $ en quelque sorte, vous Donner plus de détails sur votre saisie
EDIT
the input is made of several rows that look like this: "12768 Ashwari F 20 11 1985". Basically I have to filter all those with a name that begins with B or H and ends with n. In addition I have to calculate the age of each filtered student and find out the average age of the entire group.
awk -v this_year=$(date +%Y) -v today=$(date +%Y%m%d) '
$2 ~ /^[BH].*n$/ {
age = this_year - $6
if (today < $6 $5 $4) { age-- } # I assume those fields are the birthday
total_age += age
count ++
print $2 " is " age " years old"
}
END {
print "average age = " total_age/count
}
' inputFile
Salut Glenn, l'entrée est composée de plusieurs lignes qui ressemblent à ceci: "12768 Ashwari F 20 11 1985". Fondamentalement, je dois filtrer tous ceux avec un nom qui commence par 'B' ou' H' et se termine par 'n'. De plus, je dois calculer l'âge de chaque étudiant filtré et déterminer l'âge moyen de l'ensemble du groupe. À la vôtre, Ariel. –
C'est une bonne idée et fonctionne dans certains cas. Mais parfois, vous devez répéter l'appel de l'horodatage, par exemple pour les messages de journal, et dans ce cas, cela n'aide pas. – erikbwork