gawk 또는 awk를 사용하여 열 1의 지점을 찾아 텍스트로 바꿉니다.

gawk 또는 awk를 사용하여 열 1의 지점을 찾아 텍스트로 바꿉니다.

다음과 같은 CSV가 있습니다

1.2kbps,link1,description
1.2mbps,link2,description

찾아서 교체하고 싶어요

a) 1열에 000이 있고 kbps가 있는 포인트

b) gawk 또는 awk를 사용하여 열 1에 000000 포인트와 mbps를 사용하면 출력은 다음과 같아야 합니다.

12000,link1,description
12000000,link2,description

나는 Gawk를 선호하지만 awk 예제를 사용하여 사용할 수 있습니다.

감사해요

답변1

이렇게 하면 문제가 해결됩니다.

awk -F, '
         BEGIN{OFS=FS}
         /kbps/{gsub("kbps","",$1);$1=$1*1000};
         /mbps/{gsub("mbps","",$1);$1=$1*1000000}
         1' file.csv

답변2

이것을 시도해 보십시오(GNU Awk 3.1.7에 대해 테스트됨):

awk '{sub(/\./,"");sub(/kbps/,"000");sub(/mbps/,"000000")}1' foo.csv

관련 정보