{"id":1377,"date":"2026-08-24T20:39:24","date_gmt":"2026-08-25T02:39:24","guid":{"rendered":"https:\/\/folken-it.com\/?p=1377"},"modified":"2026-08-27T12:06:02","modified_gmt":"2026-08-27T18:06:02","slug":"como-obtener-los-valores-de-la-quinta-columna-de-un-archivo-csv-usando-comandos-linux","status":"publish","type":"post","link":"https:\/\/folken-it.com\/?p=1377","title":{"rendered":"C\u00f3mo obtener los valores de la quinta columna de un archivo CSV usando comandos Linux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Los archivos <strong>CSV (Comma-Separated Values)<\/strong> son ampliamente utilizados para intercambiar informaci\u00f3n entre aplicaciones, bases de datos, servidores y herramientas de an\u00e1lisis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si trabajas como <strong>administrador Linux, DBA, DevOps o Production Support<\/strong>, es com\u00fan recibir archivos CSV que contienen miles o incluso millones de registros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una tarea muy frecuente consiste en extraer solamente una columna.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este art\u00edculo veremos <strong>diferentes formas de obtener los valores de la quinta columna de un archivo <code>.csv<\/code> utilizando comandos Linux<\/strong>, desde soluciones sencillas con <code>cut<\/code> hasta alternativas m\u00e1s potentes con <code>awk<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Archivo CSV de ejemplo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que tenemos el archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">con la siguiente informaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>employee_id,first_name,last_name,department,salary,country\n1001,John,Smith,IT,85000,USA\n1002,Maria,Lopez,Finance,92000,Mexico\n1003,Peter,Johnson,Sales,78000,USA\n1004,Ana,Ramirez,IT,88000,Mexico\n1005,Robert,Williams,HR,72000,Canada<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tenemos seis columnas:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Posici\u00f3n<\/th><th>Columna<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>employee_id<\/td><\/tr><tr><td>2<\/td><td>first_name<\/td><\/tr><tr><td>3<\/td><td>last_name<\/td><\/tr><tr><td>4<\/td><td>department<\/td><\/tr><tr><td><strong>5<\/strong><\/td><td><strong>salary<\/strong><\/td><\/tr><tr><td>6<\/td><td>country<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nuestro objetivo ser\u00e1 obtener:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>salary\n85000\n92000\n78000\n88000\n72000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 1: utilizando <code>cut<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las soluciones m\u00e1s sencillas es utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El comando ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut -d',' -f5 employees.csv<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 significa?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>cut\n \u2502\n \u251c\u2500\u2500 -d','    \u2192 utiliza la coma como delimitador\n \u2502\n \u2514\u2500\u2500 -f5      \u2192 selecciona el campo n\u00famero 5<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>salary\n85000\n92000\n78000\n88000\n72000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta probablemente sea la soluci\u00f3n m\u00e1s sencilla cuando trabajamos con un CSV b\u00e1sico.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 2: <code>cut<\/code> eliminando el encabezado<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Normalmente no queremos incluir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>salary<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos combinar <code>tail<\/code> con <code>cut<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -n +2 employees.csv | cut -d',' -f5<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>85000\n92000\n78000\n88000\n72000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La opci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -n +2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">significa:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Mostrar el archivo comenzando desde la l\u00ednea n\u00famero 2.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto, eliminamos el encabezado antes de procesar los datos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 3: utilizando <code>awk<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>awk<\/code> es una de las herramientas m\u00e1s poderosas disponibles en Unix\/Linux para procesar informaci\u00f3n estructurada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos obtener la quinta columna utilizando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' '{print $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-F','       \u2192 define la coma como separador\n\n$1          \u2192 primera columna\n$2          \u2192 segunda columna\n$3          \u2192 tercera columna\n$4          \u2192 cuarta columna\n$5          \u2192 quinta columna<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>salary\n85000\n92000\n78000\n88000\n72000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 4: <code>awk<\/code> sin mostrar el encabezado<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos pedirle directamente a <code>awk<\/code> que ignore la primera l\u00ednea:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La variable:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>NR<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">significa <strong>Number of Record<\/strong>, que en este caso representa el n\u00famero de l\u00ednea que <code>awk<\/code> est\u00e1 procesando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>NR &gt; 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">significa:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Procesar \u00fanicamente las l\u00edneas posteriores a la primera.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>85000\n92000\n78000\n88000\n72000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta soluci\u00f3n evita utilizar <code>tail<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 5: <code>awk<\/code> indicando expl\u00edcitamente el separador de salida<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos utilizar las variables <code>FS<\/code> y <code>OFS<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk 'BEGIN {FS=\",\"; OFS=\",\"} {print $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>FS<\/code> significa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Field Separator<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">mientras que <code>OFS<\/code> significa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Output Field Separator<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para extraer una sola columna, <code>OFS<\/code> no es estrictamente necesario, pero resulta muy \u00fatil cuando queremos imprimir varias columnas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk 'BEGIN {FS=\",\"; OFS=\",\"} {print $2,$5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>first_name,salary\nJohn,85000\nMaria,92000\nPeter,78000\nAna,88000\nRobert,72000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 6: utilizando <code>sed<\/code> con una expresi\u00f3n regular<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos utilizar <code>sed<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/^\\(&#91;^,]*,\\)\\{4\\}\\(&#91;^,]*\\).*\/\\2\/' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptualmente, la expresi\u00f3n busca:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>columna1,\ncolumna2,\ncolumna3,\ncolumna4,\ncolumna5<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">y conserva el quinto valor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque funciona con archivos sencillos, esta soluci\u00f3n es menos legible que:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por esa raz\u00f3n, normalmente preferir\u00eda <code>cut<\/code> o <code>awk<\/code> para este tipo de tareas.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 7: utilizando Perl<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En servidores donde Perl est\u00e1 disponible podemos utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>perl -F',' -lane 'print $F&#91;4]' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed aparece una diferencia importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Perl comienza a numerar el array desde:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$F&#91;0] \u2192 columna 1\n$F&#91;1] \u2192 columna 2\n$F&#91;2] \u2192 columna 3\n$F&#91;3] \u2192 columna 4\n$F&#91;4] \u2192 columna 5<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As\u00ed que para obtener la quinta columna utilizamos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$F&#91;4]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">M\u00e9todo 8: utilizando Python desde Linux<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En sistemas que tienen Python instalado tambi\u00e9n podemos procesar el archivo directamente desde la l\u00ednea de comandos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una opci\u00f3n compacta ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 -c 'import csv,sys; &#91;print(r&#91;4]) for r in csv.reader(sys.stdin)]' &lt; employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una ventaja importante es que el m\u00f3dulo <code>csv<\/code> entiende mejor la estructura real de un archivo CSV que herramientas como <code>cut<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto ser\u00e1 importante m\u00e1s adelante.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Buscar solamente valores espec\u00edficos<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que podemos extraer la quinta columna, podemos combinarla con otros comandos Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, mostrar salarios superiores a 80,000:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 &amp;&amp; $5 &gt; 80000 {print $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>85000\n92000\n88000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Mostrar nombre y salario<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos imprimir m\u00faltiples columnas con <code>awk<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $2, $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>John 85000\nMaria 92000\nPeter 78000\nAna 88000\nRobert 72000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos darle formato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print \"Employee:\", $2, \"Salary:\", $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Employee: John Salary: 85000\nEmployee: Maria Salary: 92000\nEmployee: Peter Salary: 78000\nEmployee: Ana Salary: 88000\nEmployee: Robert Salary: 72000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Obtener valores \u00fanicos de la quinta columna<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que la quinta columna no contiene salarios sino valores que pueden repetirse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos obtener los valores \u00fanicos utilizando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut -d',' -f5 employees.csv | sort -u<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O con <code>awk<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -u<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Ordenar los valores<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para ordenar num\u00e9ricamente los valores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para ordenarlos de mayor a menor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -nr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>92000\n88000\n85000\n78000\n72000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Encontrar el valor m\u00e1s alto<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos combinar nuestros comandos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -nr | head -1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>92000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos resolverlo directamente con <code>awk<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 &amp;&amp; $5 &gt; max {max=$5} END {print max}' employees.csv<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Encontrar el valor m\u00e1s bajo<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Utilizando las herramientas tradicionales:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -n | head -1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>72000<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Guardar la quinta columna en otro archivo<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Otra operaci\u00f3n muy com\u00fan es extraer la informaci\u00f3n y almacenarla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut -d',' -f5 employees.csv &gt; salaries.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv &gt; salaries.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s podemos verificar el resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat salaries.txt<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Contar cu\u00e1ntos valores existen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv | wc -l<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto nos indica cu\u00e1ntos registros fueron procesados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u00bfCu\u00e1l m\u00e9todo debemos utilizar?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para archivos CSV sencillos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut -d',' -f5 employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">es probablemente la soluci\u00f3n m\u00e1s r\u00e1pida y f\u00e1cil de recordar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando necesitamos filtros, condiciones o procesamiento adicional:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">normalmente ser\u00e1 m\u00e1s flexible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos resumirlo as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>M\u00e9todo<\/th><th>Comando<\/th><th>Ventaja<\/th><\/tr><\/thead><tbody><tr><td><strong>cut<\/strong><\/td><td><code>cut -d',' -f5<\/code><\/td><td>Muy sencillo<\/td><\/tr><tr><td><strong>tail + cut<\/strong><\/td><td><code>tail -n +2 | cut -d',' -f5<\/code><\/td><td>Elimina encabezado<\/td><\/tr><tr><td><strong>awk<\/strong><\/td><td><code>awk -F',' '{print $5}'<\/code><\/td><td>Flexible<\/td><\/tr><tr><td><strong>awk + NR<\/strong><\/td><td><code>awk -F',' 'NR &gt; 1 {print $5}'<\/code><\/td><td>Flexible y elimina header<\/td><\/tr><tr><td><strong>sed<\/strong><\/td><td>Expresi\u00f3n regular<\/td><td>Disponible en casi todo Unix\/Linux<\/td><\/tr><tr><td><strong>Perl<\/strong><\/td><td><code>perl -F',' ...<\/code><\/td><td>Potente para scripting<\/td><\/tr><tr><td><strong>Python csv<\/strong><\/td><td><code>csv.reader()<\/code><\/td><td>Mejor para CSV reales\/complejos<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Cuidado: un CSV no siempre es simplemente texto separado por comas<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Este es probablemente el punto m\u00e1s importante del art\u00edculo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que tenemos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1001,John,Smith,\"Information Technology, Support\",85000,USA<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Visualmente existe una coma dentro del valor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"Information Technology, Support\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pero sigue siendo <strong>una sola columna CSV<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herramientas como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut -d','<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">no interpretan las reglas del formato CSV. Simplemente consideran cada coma como un delimitador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto, pueden devolver resultados incorrectos cuando existen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comas dentro de campos entrecomillados.<\/li>\n\n\n\n<li>Saltos de l\u00ednea dentro de campos.<\/li>\n\n\n\n<li>Comillas escapadas.<\/li>\n\n\n\n<li>Otras estructuras v\u00e1lidas del est\u00e1ndar CSV.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En esos casos es preferible utilizar una herramienta que realmente interprete CSV, por ejemplo Python:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 -c 'import csv,sys; &#91;print(r&#91;4]) for r in csv.reader(sys.stdin)]' &lt; employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La diferencia conceptual es importante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut \/ awk\n     \u2502\n     \u25bc\nProcesan texto delimitado\n     \u2502\n     \u25bc\nCSV sencillo\n\n\nPython csv\n     \u2502\n     \u25bc\nInterpreta estructura CSV\n     \u2502\n     \u25bc\nCSV m\u00e1s complejo<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Bonus: obtener la quinta columna de muchos archivos CSV<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que tenemos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>employees_01.csv\nemployees_02.csv\nemployees_03.csv\nemployees_04.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos procesarlos con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for file in *.csv\ndo\n    echo \"Processing: $file\"\n    awk -F',' 'NR &gt; 1 {print $5}' \"$file\"\ndone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O guardar los resultados:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for file in *.csv\ndo\n    awk -F',' 'NR &gt; 1 {print $5}' \"$file\"\ndone &gt; all_salaries.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto demuestra una de las grandes ventajas de Linux:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>podemos combinar peque\u00f1as herramientas para construir operaciones mucho m\u00e1s potentes.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Cheat Sheet<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Estos son algunos de los comandos m\u00e1s \u00fatiles de esta entrada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Quinta columna\ncut -d',' -f5 employees.csv\n\n# Quinta columna sin encabezado\ntail -n +2 employees.csv | cut -d',' -f5\n\n# Utilizando AWK\nawk -F',' '{print $5}' employees.csv\n\n# AWK sin encabezado\nawk -F',' 'NR &gt; 1 {print $5}' employees.csv\n\n# Valores \u00fanicos\nawk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -u\n\n# Ordenar num\u00e9ricamente\nawk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -n\n\n# Ordenar de mayor a menor\nawk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -nr\n\n# Valor m\u00e1ximo\nawk -F',' 'NR &gt; 1 {print $5}' employees.csv | sort -nr | head -1\n\n# Guardar en otro archivo\nawk -F',' 'NR &gt; 1 {print $5}' employees.csv &gt; output.txt<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusi\u00f3n<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Linux ofrece m\u00faltiples formas de obtener una columna espec\u00edfica de un archivo CSV.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para tareas sencillas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cut -d',' -f5 employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para operaciones que requieren filtros y procesamiento adicional:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' 'NR &gt; 1 {print $5}' employees.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y para archivos CSV que contienen campos entrecomillados, comas internas u otras estructuras m\u00e1s complejas, es recomendable utilizar un parser CSV real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dominar herramientas como <strong>cut, awk, sed, sort, head, tail y grep<\/strong> es extremadamente \u00fatil para administradores Linux, DBAs, DevOps y equipos de Production Support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las grandes fortalezas de Unix\/Linux no consiste solamente en sus comandos individuales, sino en la posibilidad de <strong>combinarlos mediante pipes (<code>|<\/code>) para transformar grandes cantidades de informaci\u00f3n utilizando instrucciones muy peque\u00f1as<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los archivos CSV (Comma-Separated Values) son ampliamente utilizados para intercambiar informaci\u00f3n entre aplicaciones, bases de datos, servidores y herramientas de an\u00e1lisis. Si [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1378,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"C\u00f3mo obtener los valores de la quinta columna de un archivo CSV usando comandos Linux","jetpack_seo_html_title":"linux","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[52,5],"tags":[],"class_list":["post-1377","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bash","category-linux"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/folken-it.com\/wp-content\/uploads\/2026\/08\/quintacolumna.png?fit=1702%2C924&ssl=1","_links":{"self":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1377"}],"version-history":[{"count":1,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1377\/revisions"}],"predecessor-version":[{"id":1379,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1377\/revisions\/1379"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/media\/1378"}],"wp:attachment":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}