{"id":92,"date":"2013-02-26T23:34:26","date_gmt":"2013-02-26T23:34:26","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/?p=92"},"modified":"2013-02-26T23:37:13","modified_gmt":"2013-02-26T23:37:13","slug":"ayuda-a-la-edicion","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/ayuda-a-la-edicion\/","title":{"rendered":"Ayuda a la edici\u00f3n"},"content":{"rendered":"<p><\/p>\n<h3>cut<\/h3>\n<p>Supongamos que queremos saber cu\u00e1ntas personas de nuestro listado de tel\u00e9fonos se apellidan &#8216;Luis&#8217;. Podemos utilizar el comando <em>grep<\/em> como hemos visto con anterioridad para seleccionar las l\u00edneas que contienen esta cadena, pero como resultado obtendremos todas las apariciones de &#8216;Luis&#8217; del listado, no s\u00f3lo los apellidos.<\/p>\n<p>Para reproducir este ejemplo, copia el fichero telefonos.txt a otro fichero en el mismo directorio llamado telefonos2.txt. Utiliza <em>vi<\/em> para modificar la entrada correspondiente a &#8216;Mateo Guerricer&#8217; como &#8216;Mateo Luis&#8217;.<\/p>\n<pre>$ grep Luis telefonos2.txt\r\n Luis Terreros 5553251\r\n Mateo Luis 5559082\r\n Luis Terico 5550255<\/pre>\n<p>Ser\u00eda muy \u00fatil poder filtrar el contenido del fichero de forma que \u00fanicamente nos proporcionara los apellidos. O dicho de otra forma, que pudi\u00e9ramos obtener \u00fanicamente la segunda columna.<\/p>\n<p>El comando <em>cut<\/em> nos permite realizar este tipo de funciones. Este comando divide cada l\u00ednea en columnas a partir de un separador dado mediante la opci\u00f3n <em>-d<\/em>. Combinada con la opci\u00f3n <em>-f<\/em> seguida del n\u00famero de columna, podemos obtener el resultado deseado.<\/p>\n<pre>$ cut -d\" \" -f2 telefonos2.txt\r\n Terreros\r\n Luis\r\n Pellon\r\n Terico\r\n Calzado<\/pre>\n<p>En este ejemplo hemos especificado entre comillas un espacio como separador y obtenido la segunda columna. Ahora, s\u00f3lo queda conectar esta salida con <em>grep<\/em> y la opci\u00f3n de contar apariciones:<\/p>\n<pre>$ cut -d\" \" -f2 telefonos2.txt | grep -c Luis\r\n 1<\/pre>\n<h3>tr<\/h3>\n<p>Este comando es un filtro \u00abtraductor\u00bb que lee caracteres de la entrada est\u00e1ndar y elimina o sustituye los que cumplen un cierto patr\u00f3n. El esquema de uso general es el siguiente:<\/p>\n<p style=\"text-align: center;\">tr &lt;modificaci\u00f3n&gt;<\/p>\n<p style=\"padding-left: 30px;\">Para reproducir el siguiente ejemplo, utiliza\u00a0<em>vi<\/em> para a\u00f1adir al final de cada entrada de la lista contenida en telefonos2.txt las siguientes fechas de nacimiento con el mismo formato y orden:<br \/>\n08-02-1970<br \/>\n04-08-1964<br \/>\n06-09-1972<br \/>\n09-06-1968<br \/>\n12-07-1968<\/p>\n<p>Imaginemos que queremos incluir estos datos en una base de datos que requiere que el formato de las fechas utilice el separador &#8216;\/&#8217; en lugar del gui\u00f3n. Podemos utilizar el comando <em>tr<\/em> para hacerlo de la siguiente forma:<\/p>\n<pre>$ tr \"-\" \"\/\" &lt; telefonos2.txt<\/pre>\n<p>Es importante fijarse en que la entrada de este comando no se puede especificar como par\u00e1metro sino que debe venir por la entrada est\u00e1ndar, por lo que hemos tenido que utilizar la redirecci\u00f3n para utilizarlo.<\/p>\n<p>El comando <em>tr<\/em> permite especificar grupos de caracteres durante la sustituci\u00f3n. En ejemplos anteriores hemos visto el uso de [:upper:] y [:lower:] para representar may\u00fasculas y min\u00fasculas respectivamente. Siguiendo con el ejemplo anterior, podemos suponer que existe otro requerimiento que nos obliga a separar las columnas con comas en lugar de blancos. Para solucionarlo podemos hacer lo siguiente:<\/p>\n<pre>$ tr [:blank:] \",\" &lt; telefonos2.txt<\/pre>\n<p>Aqu\u00ed usamos [:blank:] para indicar cualquier espacio en blanco o tabulador. Los resultados de todos estos ejemplos se muestran por pantalla, pero es posible redireccionarlos a su vez a un fichero.<\/p>","protected":false},"excerpt":{"rendered":"<p>cut Supongamos que queremos saber cu\u00e1ntas personas de nuestro listado de tel\u00e9fonos se apellidan &#8216;Luis&#8217;. Podemos utilizar el comando grep como hemos visto con anterioridad para seleccionar las l\u00edneas que contienen esta cadena, pero como resultado obtendremos todas las apariciones de &#8216;Luis&#8217; del listado, no s\u00f3lo los apellidos. Para reproducir este ejemplo, copia el fichero &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/ayuda-a-la-edicion\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abAyuda a la edici\u00f3n\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-92","post","type-post","status-publish","format-standard","hentry","category-gnulinux","entry"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":3,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"predecessor-version":[{"id":95,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/92\/revisions\/95"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}