Mon fichier,
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
Production,
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
Je veux supprimer deux colonnes INFO_NAM
et WERT
de mon fichier d'entrée.
shell
shell-script
text-processing
sed
awk
pmaipmui
la source
la source
INFO_NAM
etPROCID
suppriméawk '{$(NF-1)=$(NF-2)=""};1' <file | column -t
peut le formater bien.Réponses:
Ne pas imprimer les 6 e et 8 e colonnes
la source
Cela a été répondu avant ailleurs sur Stack Overflow.
/programming/15361632/delete-a-column-with-awk-or-sed /programming/7551219/deleting-columns-from-a-file-with-awk -ou-de-ligne de commande-sur-linux etc.
Je crois que
awk
c'est le meilleur pour ça.Il est également possible de l'utiliser
cut
.la source
cut
ou ne le mentionnez pas?--complement
option pourcut
pourrait être pratique ici, c'est-à-dire supprimer deux champs plutôt que d'en sélectionner six:cut -f6,8 --complement file
cut –c1-45,55-58
. Mais avant d'exécuter cela, je dois compter le nombre total de caractères, alors seulement je peux nous. Mais je voulais imprimer les colonnes avec le même que mon format d'entréeUtilisez
printf
pour conserver le format de chaque champ. Chaque champ comporte x caractères et le signe moins justifie la chaîne restante.la source