
다음과 같은 두 개의 파일이 있습니다. file2는 탭으로 구분됩니다.
파일 1
A
B
E
파일 2
ID value
A 1
B 2
C 3
D 4
E 5
F 6
GA 7
HB 10
I 11
file1에 ID가 있으면 아래와 같이 두 번째 열의 값을 0으로 바꾸고 싶습니다.
ID value
A 0
B 0
C 3
D 4
E 0
F 6
GA 7
HB 10
I 11
정말 멍청한 코드를 썼어
for i in `cat file1`;do sed -i 's/\<'"$i"'\>/'"$i"'\t0/g' file2;done
less -S file2 | awk '{print $1,"\t",$2}' | sed 's/ //g' > finalfile
유창한 코드는 awk처럼 대체될 수 있나요? 감사합니다.
답변1
모든 일을 함께 하세요 awk
.
awk -v OFS='\t' '
NR==FNR{ Ids[$1]; next }
{ print $1, ($1 in Ids?0:$2) }
' file1 file2