AWK를 사용하여 행을 검색하고 다른 행의 특정 값으로 바꿉니다.

AWK를 사용하여 행을 검색하고 다른 행의 특정 값으로 바꿉니다.

첫 번째 행의 "1"을 두 번째 행에 지정된 값으로 바꾸고 싶습니다. 입력 데이터 세트는 다음과 같습니다.

0,0,1,1,0,0,1,1,0,1,0,1,0,1
65,70,75,80,85,85,90

원하는 출력:

0,0,65,70,0,0,75,80,0,85,0,85,0,90

미리 감사드립니다.

ベストアンサー1

다음과 같습니다(모든 것 awk):

$ tac file | awk '
    BEGIN{FS=OFS=","}
    NR==1{split($0, a, FS);next}
    NR==2{for (i=1; i<=NF; i++)
        if ($i == 1) $i=a[++c]}
    1 # aka print
' 

다음 tac file으로 교체tail -r file*BSD

산출

0,0,65,70,0,0,75,80,0,85,0,85,0,90

おすすめ記事