{"id":286,"date":"2023-08-31T13:58:32","date_gmt":"2023-08-31T11:58:32","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=286"},"modified":"2025-07-26T15:36:24","modified_gmt":"2025-07-26T13:36:24","slug":"1-13-5-manipulacion-de-cadenas-de-caracteres","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/1-13-5-manipulacion-de-cadenas-de-caracteres\/","title":{"rendered":"1.13.5. Manipulaci\u00f3n de cadenas de caracteres"},"content":{"rendered":"<p>El comando <code>gawk<\/code>\u00a0provee de diversas funciones para la manipulaci\u00f3n de cadenas de caracteres. En este apartado solo se muestran las funciones muy sencillas de usar que se implementan con frecuencia en c\u00f3digo <em>gawk<\/em>, y a continuaci\u00f3n diferentes ejemplos pr\u00e1cticos con los que se puede practicar.<\/p>\n<div class=\"featured featured-grey\"><\/p>\n<ul>\n<li><strong><code>match()<\/code><\/strong><code>\u00a0 \u00a0match(cadena, regexp [,array])<\/code><\/li>\n<li><strong><code>index()<\/code><\/strong><code>\u00a0 \u00a0index(in_str1, find_str2)<\/code><\/li>\n<li><strong><code>sub()<\/code><\/strong><code>\u00a0 \u00a0 \u00a0\/regexp\/, \"reemplazo\", [, diana]<\/code><\/li>\n<li><strong><code>gsub()<\/code><\/strong><code>\u00a0 \u00a0 \/regexp\/, \"reemplazo\", [,diana]<\/code><\/li>\n<li><strong><code>substr()<\/code><\/strong><code>\u00a0 cadena, inicio, [,longitud]<\/code><\/li>\n<li><strong><code>split()<\/code><\/strong><code>\u00a0 \u00a0split(string, array [, fieldsep [,seps ] ])<\/code><\/li>\n<li><strong><code>length ()<\/code><\/strong><code> ([string])<\/code><\/li>\n<li><strong><code>tolower()<\/code><\/strong><code> (string)<\/code><\/li>\n<li><strong><code>toupper()<\/code><\/strong><code> (string)<\/code><\/li>\n<\/ul>\n<p>\n<\/div>\n<ol>\n<li><code>sub()<\/code>busca la instancia m\u00e1s larga en la cadena diana de la\u00a0<em>regexp<\/em>, sustituy\u00e9ndola por la cadena reemplazo, mientras que\u00a0<code>gsub()<\/code><em>\u00a0<\/em>realiza reemplazos globales.<\/li>\n<\/ol>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0echo\u00a0'GGCCCACACAAACGCGACGGCGAA'\u00a0|\u00a0gawk\u00a0'sub(\/GACGGC\/,\u00a0\"\")'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">GGCCCACACAAACGCGAA<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0gawk\u00a0'BEGIN\u00a0{\u00a0cad\u00a0=\u00a0\"Es\u00a0una\u00a0cadena\u00a0de\u00a0las\u00a0bases\u00a0nitrogenadas:\u00a0cadena\";\r\nprint\u00a0cad;\u00a0sub(\/cadena\/,\u00a0\"secuencia\",\u00a0cad);\u00a0print\u00a0cad}'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\"> Es una cadena de las bases nitrogenadas: cadena\u00a0\r\nEs una secuencia de las bases nitrogenadas: cadena<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0gawk\u00a0'BEGIN\u00a0{\u00a0cad\u00a0=\u00a0\"Es\u00a0una\u00a0cadena\u00a0de\u00a0bases\u00a0nitrogenadas:\u00a0cadena\";\r\nprint cad; gsub(\/cadena\/, \"secuencia\", cad); print cad}'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">Es una cadena de bases nitrogenadas: cadena \r\nEs una secuencia de bases nitrogenadas: secuencia<\/pre>\n<ol start=\"2\">\n<li>\u00a0 <code>index()<\/code> imprime el \u00edndice en el que empieza la subcadena (AAA) en la cadena principal (<em>seq<\/em>, en este caso). <code>index()<\/code> y <code>substr()<\/code> con frecuencia se usan juntos.<\/li>\n<\/ol>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk 'BEGIN { seq = \"GGCCCACACAAACGCGACGGCGAA\";\r\nidx = index(seq, \"AAA\"; print idx}'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">10<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ echo 'GGCCCACACAAACGCGACGGCGAA' | gawk '{ idx = index($0, \"AAA\"); gene = substr($0, idx); print idx, \"\\n\"$0, \"\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \" gene }'\r\n\r\n<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">10 \r\nGGCCCACACAAACGCGACGGCGAA\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AAACGCGACGGCGAA<\/pre>\n<ol start=\"3\">\n<li>Y un \u00faltimo ejemplo con <code>length<\/code> (en castellano, <em>longitud<\/em>).<\/li>\n<\/ol>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ echo 'GGCCCACACAAACGCGACGGCGAA' | gawk 'END {print \"El oligo\",\u00a0 $0, \"tiene\", length($0), \"nt de longitud.\"}'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">El oligo GGCCCACACAAACGCGACGGCGAA tiene 24 nt de longitud.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>El comando gawk\u00a0provee de diversas funciones para la manipulaci\u00f3n de cadenas de caracteres. En este apartado solo se muestran las funciones muy sencillas de usar que se implementan con frecuencia en c\u00f3digo gawk, y a continuaci\u00f3n diferentes ejemplos pr\u00e1cticos con los que se puede practicar. sub()busca la instancia m\u00e1s larga en la cadena diana de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/286"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/comments?post=286"}],"version-history":[{"count":21,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/286\/revisions"}],"predecessor-version":[{"id":1369,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/286\/revisions\/1369"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/media?parent=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}