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.
match()match(cadena, regexp [,array])index()index(in_str1, find_str2)sub()/regexp/, "reemplazo", [, diana]gsub()/regexp/, "reemplazo", [,diana]substr()cadena, inicio, [,longitud]split()split(string, array [, fieldsep [,seps ] ])length ()([string])tolower()(string)toupper()(string)
sub()busca la instància més llarga en la cadena diana de la regexp, substituint-la per la cadena reemplaçament, mentre quegsub()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
-
index()imprimeix l’índex en què comença la subcadena (AAA) a la cadena principal (seq, en aquest cas)..index()isubstr()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
- 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.