awk: 상수와 마지막 열의 곱인 두 개의 열을 csv에 추가합니다.

awk: 상수와 마지막 열의 곱인 두 개의 열을 csv에 추가합니다.

마지막 열에 상수를 곱한 내용이 포함된 CSV 파일에 두 개의 새 열을 추가하려고 합니다. 마지막 열은 파운드 기호와 숫자로 구성됩니다.

입력하다:

id,tester,company,chief,previous_test,test,date,result,cost
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,£11897.96

예상 출력:

id,tester,company,chief,previous_test,test,date,result,cost,euro,dollar
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,¬£11897.96,13682.65€,$16538.16

지금까지 내가 한 일은 이 열의 하위 문자열 하나를 가져와서 이를 사용하여 두 개의 다른 하위 문자열을 만드는 것이었지만 내가 얻은 것은 해시 기호 없이 마지막 열의 복사본 두 개뿐이었습니다.

awk -F, -v OFS="," 'NR==1 { print $0,"euro,dollar"; next }
{ w = substr($9, 2);
  u = substr($9, 2);
  print $0, w, u }' file.csv

지금 하고 싶은 것은 두 열에 상수(각각 1.15와 1.39)를 곱하고 각 열에 기호(€와 $)를 추가하는 것인데 print마지막 명령을 실행하는 데 어려움이 있습니다.

답변1

awk 'BEGIN{ FS=OFS=","; CONVFMT="%.2f" }
          { $(NF+1)=(NR>1?    substr($9,3)*1.15"€":"euro")
            $(NF+1)=(NR>1? "$"substr($9,3)*1.39   :"dollar")
}1' infile

읽다용도는 무엇입니까 CONVFMT?

관련 정보