Мой файл,
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
Выход,
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
Я хочу удалить два столбца INFO_NAM
и WERT
из моего входного файла.
shell
shell-script
text-processing
sed
awk
pmaipmui
источник
источник
INFO_NAM
&PROCID
удаленawk '{$(NF-1)=$(NF-2)=""};1' <file | column -t
может отформатировать это красиво.Ответы:
Не печатать 6- й и 8- й столбец
источник
На этот вопрос уже давали ответы в других разделах переполнения стека.
/programming/15361632/delete-a-column-with-awk-or-sed /programming/7551219/deleting-columns-from-a-file-with-awk -или-из-командной строки-на-Linux и т. д ..
Я считаю,
awk
что это лучшее для этого.Можно использовать
cut
также.источник
cut
или не упомяните это?--complement
опция forcut
, то есть удаление двух полей вместо выбора шести:cut -f6,8 --complement file
cut –c1-45,55-58
. Но прежде чем выполнить это, я должен посчитать общее количество символов, тогда только я могу это использовать. Но я хотел напечатать столбцы с тем же форматом вводаИспользуйте
printf
для сохранения формата каждого поля. Каждое поле имеет длину x символов, а знак минус соответствует оставшейся строке.источник