쉘 명령을 사용하여 파일에서 열 또는 여러 열을 제거하는 방법은 무엇입니까?

내 파일

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내 입력 파일에서.



답변

6 번째 와 8 번째 열을 인쇄하지 마십시오

awk '{$6=$8=""; print $0}' file


답변

이것은 스택 오버플로의 다른 곳에서 이미 답변되었습니다.

/programming/15361632/delete-a-column-with-awk-or-sed
/programming/7551219/deleting-columns-from-a-file-with-awk 또는 명령 줄에서 리눅스

나는 그것이 awk최선 이라고 믿는다 .

awk '{print $1,$2,$3,$4,$5,$7}' file

사용 cut하는 것도 가능합니다 .

cut -f1,2,3,4,5,7 file


답변

printf각 필드의 형식을 유지하는 데 사용하십시오 . 각 필드의 길이는 x 자이며 빼기 기호는 문자열을 왼쪽으로 정렬합니다.

awk '{ printf("%-8s %-8s %-8s %-8s %-8s %-4s\n", $1, $2, $3, $4, $5, $7)}' file


답변