Les fonctions personnelles peuvent être définies dans le script awk, en dehors des blocs d'instructions, ou dans un autre script qui sera également appelé par l'option -f <script>.
Une fonction se définit par le mot clé function suivi du nom de la fonction et de ses paramètres. Une fonction peut recevoir de 0 à n arguments et retourner une valeur explicite.
Syntaxe
function nom_fonction (param1, param2, ..., paramn) {
	     instructions
	     return valeur
	}
Tous les paramètres de la fonction sont des variables locales. Toute autre variable définie dans la fonction est globale.
Appel d'une fonction
valeur=nom_fonction(val1, val2, ..., valn)
Il ne doit pas y avoir d'espace entre le nom de la fonction et la parenthèse ouvrante.
Exemple
$ nl script14.awk
	     1  function modulo(nb){
	     2          mod=nb%2
	     3          if(mod==0){
	     4                  chaine=sprintf("%d est un nombre pair" , nb)
	     5          }
	     6          else{
	     7                  chaine=sprintf("%d est un nombre impair" , nb)
	     8          }
	     9          return chaine
	    10  }
	    11  {
	    12          for(i=1;i<=NF;i++){
	    13                  print modulo($i)
	    14          }
	    15  }
	$ echo "20 21 23 56 43 2.4 rr" | awk -f script14.awk
	20 est un nombre pair
	21 est un nombre impair
	23 est un nombre impair
	56 est un nombre pair
	43 est un nombre impair
	2 est un nombre impair
	0 est un nombre pair
	$