Mi archivo,
ARCHIVE B1_NAME B2_NAME B3_NAME ELEMENT INFO_NAM WERT PROCID
-------- -------- -------- -------- -------- -------- ---- ------
15MinAvg AIRSS 33-GIS DMDMGIS1 I MvAvr15m 1123 CP
15MinAvg AIRSS 33-GIS DMDMGIS1 P MvAvr15m 2344 CP
15MinAvg AIRSS 33-GIS DMDMGIS1 Q MvAvr15m 4545 CP
15MinAvg AIRSS 33-GIS DMDMGIS2 I MvAvr15m 6576 CP
15MinAvg AIRSS 33-GIS DMDMGIS2 P MvAvr15m 4355 CP
15MinAvg AIRSS 33-GIS DMDMGIS2 Q MvAvr15m 6664 CP
Salida,
ARCHIVE B1_NAME B2_NAME B3_NAME ELEMENT WERT
-------- -------- -------- -------- ------- ----
15MinAvg AIRSS 33-GIS DMDMGIS1 I 1123
15MinAvg AIRSS 33-GIS DMDMGIS1 P 2344
15MinAvg AIRSS 33-GIS DMDMGIS1 Q 4545
15MinAvg AIRSS 33-GIS DMDMGIS2 I 6576
15MinAvg AIRSS 33-GIS DMDMGIS2 P 4355
15MinAvg AIRSS 33-GIS DMDMGIS2 Q 6664
Quiero eliminar dos columnas INFO_NAM
y WERT
de mi archivo de entrada.
shell
shell-script
text-processing
sed
awk
pmaipmui
fuente
fuente
INFO_NAM
&PROCID
eliminadoawk '{$(NF-1)=$(NF-2)=""};1' <file | column -t
puede formatearlo bien.Respuestas:
No imprima 6 º y 8 º columna
fuente
Esto ha sido respondido antes en otra parte en Stack Overflow.
/programming/15361632/delete-a-column-with-awk-or-sed /programming/7551219/deleting-columns-from-a-file-with-awk -o-desde-línea-de-comando-en-linux etc.
Creo que
awk
es lo mejor para eso.Es posible usar
cut
también.fuente
cut
o no mencionarlo?--complement
opción paracut
podría ser útil aquí, es decir, eliminar dos campos en lugar de seleccionar seis:cut -f6,8 --complement file
cut –c1-45,55-58
. Pero antes de ejecutar esto, tengo que contar el total de caracteres, entonces solo nosotros podemos hacerlo. Pero quería imprimir las columnas con el mismo formato de entradaUse
printf
para preservar el formato de cada campo. Cada campo tiene una longitud de x caracteres y el signo menos justifica la cadena que queda.fuente