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_NAMy WERTde mi archivo de entrada.
shell
shell-script
text-processing
sed
awk
pmaipmui
fuente
fuente

INFO_NAM&PROCIDeliminadoawk '{$(NF-1)=$(NF-2)=""};1' <file | column -tpuede 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
awkes lo mejor para eso.Es posible usar
cuttambién.fuente
cuto no mencionarlo?--complementopción paracutpodría ser útil aquí, es decir, eliminar dos campos en lugar de seleccionar seis:cut -f6,8 --complement filecut –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
printfpara preservar el formato de cada campo. Cada campo tiene una longitud de x caracteres y el signo menos justifica la cadena que queda.fuente