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.