주어진 데이터 세트에서 찾아 데이터 열에 숫자를 추가해야 하는 패턴이 포함된 파일이 있습니다. 스크립트를 작성하거나 awk/sed/grep을 사용하여 특정 파일에 패턴을 자동으로 쿼리하여 내가 가지고 있는 데이터와 교차 확인하고 일치하는 패턴이 있는 열에 숫자를 추가하고 싶습니다.
예:-
데이터
제목, 개수, RESA
10th ECOMF,PAB 1 MAT
10th ICOCPS (CPV-'10) 23 SCI
10th ICOCPS (CPV-'10) 6 SCI
10th ICOMAMOS (M2S-X) 3 EEE
JOP 32 COP
AIP 34 Sff
JOP 43 COP
HIT 42 tilde
내 스키마 파일에 저널 이름이 포함되어 있습니다:-
10th ECOMF,PAB
10th ICOCPS (CPV-'10)
10th ICOCPS (CPV-'10)
10th ICOMAMOS (M2S-X)
JOP
AIP
JOP
HIT
SUPERCONDUCTIVITY (M2S-X)
원하는 출력:
10th ECOMF,PAB 1
10th ICOCPS (CPV-'10) 29
10th ICOMAMOS (M2S-X) 3
JOP 75
AIP 34
HIT 42
.
.
곧,
추신:- 데이터는 탭으로 구분되어 있으며 동일한 데이터가 CSV에 있습니다.
답변1
앗해결책:
awk 'BEGIN{ FS=OFS="\t" }
NR==FNR{ if(NF && !($0 in b)) { a[++c]=$0; b[$0] } next }{ b[$1]+=$2 }
END{ len=length(a); for(i=1;i<=len;i++) if(a[i] in b) print a[i],b[a[i]] }' patterns data
BEGIN{ FS=OFS="\t" }
- 필드 구분 기호 설정a[++c]=$0; b[$0]
- 독특한 수집잡지patterns
파일의 이름b[$1]+=$2
- 각 숫자를 요약잡지data
파일의 이름if(a[i] in b) print a[i],b[a[i]]
- 각각의 합계 값을 추가합니다.잡지pattern
파일의 이름
산출:
10th ECOMF,PAB 1
10th ICOCPS (CPV-'10) 29
10th ICOMAMOS (M2S-X) 3
JOP 75
AIP 34
HIT 42
...