Meine Datei,
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
Ausgabe,
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
Ich möchte zwei Spalten INFO_NAM
und WERT
aus meiner Eingabedatei löschen .
shell
shell-script
text-processing
sed
awk
pmaipmui
quelle
quelle
INFO_NAM
&PROCID
gelöschtawk '{$(NF-1)=$(NF-2)=""};1' <file | column -t
kann es schön formatieren.Antworten:
Drucken Sie nicht 6 th und 8 - ten Spalte
quelle
Dies wurde bereits zuvor auf Stack Overflow beantwortet.
/programming/15361632/delete-a-column-with-awk-or-sed /programming/7551219/deleting-columns-from-a-file-with-awk -oder-von-befehlszeile-unter-linux etc ..
Ich glaube, das
awk
ist das Beste dafür.Es ist auch möglich, zu verwenden
cut
.quelle
cut
oder erwähnen Sie es nicht?--complement
Option fürcut
könnte hier nützlich sein, dh das Entfernen von zwei Feldern anstatt der Auswahl von sechs:cut -f6,8 --complement file
cut –c1-45,55-58
. Aber bevor ich das ausführen kann, muss ich die Gesamtzahl der Zeichen zählen, dann kann nur ich es uns sagen. Aber ich wollte die Spalten mit dem gleichen EingabeformatVerwenden Sie
printf
diese Option , um das Format jedes Felds beizubehalten. Jedes Feld ist x Zeichen lang und das Minuszeichen steht für die verbleibende Zeichenfolge.quelle