
입력하다:
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
.PROCID
답변1
열을 완전히 삭제하는 대신 열을 지우려면 다음을 수행하세요.
6 열과 8 열 은 인쇄하지 마세요 .
awk '{$6=$8=""; print $0}' file
답변2
이 질문은 이전에 Stack Overflow의 다른 곳에서 답변되었습니다.
awk
나는 이것이 최선이라고 믿습니다 .
awk '{print $1,$2,$3,$4,$5,$7}' file
cut
도 가능.
cut -f1,2,3,4,5,7 file
답변3
열을 삭제하는 가장 좋은 방법은 다음과 같습니다 cut
.
cut --complement -d' ' -f6,8 file
설명하다:
-d
이 경우 구분 기호를 지정합니다.--complement
지정된 열을 제외한 열 유지-f
-f
잘라낼 열을 지정합니다(--complement
이 경우에는 유지할 열이 아닌 열 6과 8).
~에서컷 매뉴얼 페이지:
-d, --delimiter=DELIM use DELIM instead of TAB for field delimiter -f, --fields=LIST select only these fields; also print any line that contains no delimiter character, unless the -s option is specified --complement complement the set of selected bytes, characters or fields
다른 사람들은 유사한 구조를 사용하도록 제안했지만 awk '{$2=$4=""; print $0}'
구분 기호가 공백이 아닌 경우에는 작동하지 않습니다. 이는 필드의 내용을 빈 문자열로 만들지만 필드를 완전히 제거하지는 않습니다. 예를 들어, echo "a|b|c|d|e" | awk -v FS='|' -v OFS='|' '{$2=$4=""; print}'
수확량 a||c||e
.
답변4
Perl 솔루션을 기꺼이 받아들이고 싶다면...
perl -ane 'printf("%-8s %-8s %-8s %-8s %-8s %-4s\n", $F[0], $F[1], $F[2], $F[3], $F[4], $F[6])' file
다음 명령줄 옵션을 사용하세요.
-n
각 줄을 자동으로 인쇄하지 않고 입력 파일의 각 줄을 반복합니다.-a
자동 분할 모드 – 입력 행을 @F 배열로 분할합니다. 기본적으로 공백으로 분할-e
다음 Perl 코드를 실행하십시오.