1. Introducció als entorns de treball UNIX

1.13. El llenguatge de processament d’arxius GAWK

1.13.5. Manipulación de cadenas de caracteres

L’ordre gawk proveeix de diverses funcions per a la manipulació de cadenes de caràcters. En aquest apartat només es mostren les funcions molt senzilles d’usar que s’implementen amb freqüència en codi gawk, i a continuació diferents exemples pràctics amb els quals es pot practicar.

  1. sub() busca la instància més llarga en la cadena diana de la regexp, substituint-la per la cadena reemplaçament, mentre que gsub() realitza reemplaçaments globals.
$ echo 'GGCCCACACAAACGCGACGGCGAA' | gawk 'sub(/GACGGC/, "")'
 GGCCCACACAAACGCGAA
 $ gawk 'BEGIN { cad = "És una cadena de les bases nitrogenades: cadena";
print cad; sub(/cadena/, "seqüència", cad); print cad}'
 
És una cadena de les bases nitrogenades: cadena 
És una seqüència de les bases nitrogenades: cadena
 $ gawk 'BEGIN { cad = "És una cadena de bases nitrogenades: cadena";
print cad; gsub(/cadena/, "secuencia", cad); print cad}'
És una cadena de bases nitrogenades: cadena
És una seqüència de bases nitrogenades: seqüència
  1.   index() imprimeix l’índex en què comença la subcadena (AAA) a la cadena principal (seq, en aquest cas).. index() i substr() amb freqüència s’usen junts.
$ gawk 'BEGIN { seq = "GGCCCACACAAACGCGACGGCGAA";
idx = index(seq, "AAA"; print idx}'
10
$ echo 'GGCCCACACAAACGCGACGGCGAA' | gawk '{ idx = index($0, "AAA"); gene = substr($0, idx); print idx, "\n"$0, "\n         " gene }'

10

GGCCCACACAAACGCGACGGCGAA

         AAACGCGACGGCGAA
  1. I un últim exemple amb length (en català, longitud).
$ echo 'GGCCCACACAAACGCGACGGCGAA' | gawk 'END {print "El oligo",  $0, "té", length($0), "nt de longitud."}'
L'oligo GGCCCACACAAACGCGACGGCGAA té 24 nt de longitud.