Saltar al contenido

Cómo eliminar la última columna de un archivo en Linux

Indagamos por el mundo online y así de esta forma brindarte la respuesta para tu duda, si tienes alguna inquietud déjanos la inquietud y te respondemos sin falta, porque estamos para servirte.

Solución:

Con awk:

awk 'NFNF-=1;1' out

o:

awk 'NFNF--;1' out

o:

awk 'NF--NF;1' out

Aunque esto parece vudú, funciona. Hay tres partes en cada uno de estos comandos awk.

El primero es NFque es una condición previa para la segunda parte. NF es una variable que contiene el número de campos en una línea. En AWK, las cosas son true si no son 0 o están vacíos string "". Por lo tanto, la segunda parte (donde NF se decrementa) sólo ocurre si NF no es 0

La segunda parte (ya sea NF-=1NF-- o --NF) es simplemente restar uno de la NF variable. Esto evita que se imprima el último campo, porque cuando cambia un campo (eliminando el último campo en este caso), awk reconstruir $0concatene todos los campos separados por espacios de forma predeterminada. $0 ya no contenía el último campo.

la parte final es 1. No es mágico, solo se usa como una expresión que significa true. Si una awk expresión se evalúa como true sin ninguna acción asociada, awk la acción predeterminada es print $0.

Usando grep con PCRE:

$ grep -Po '.*(?=s+[^s]+$)' file.txt 
1223 1234 1323 ... 2222
1233 1234 1233 ... 3444
0000 5553 3455 ... 2334

Usando GNU sed:

$ sed -r 's/(.*)s+[^s]+$/1/' file.txt 
1223 1234 1323 ... 2222
1233 1234 1233 ... 3444
0000 5553 3455 ... 2334

Usando Perl:

perl -lane '$,=" ";pop(@F);print(@F)' in

Usando rev + cut:

rev in | cut -d ' ' -f 2- | rev

Reseñas y puntuaciones

Te invitamos a añadir valor a nuestro contenido participando con tu veteranía en las interpretaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *