로그 파일에서 쉼표로 구분하는 방법

로그 파일에서 쉼표로 구분하는 방법

다음과 같은 로그 파일이 있습니다.

011122111128 :16267281288 :40586200370017022 :947700000622 :919400146760221 :SSD :4065376D : :9477000006 :9170120275030 :210 :18 :002919544716189 :unknown :unknown :unknown

각 줄을 쉼표로 구분된 줄로 인쇄해야 합니다(항상 마지막 50개의 레코드를 가져와야 함). 그런 다음 CSV 파일로 가져올 수 있습니다. 이는 원하는 출력입니다.

011122111128,16267281288,40586200370017022,947700000622,919400146760221,SSD,4065376D,,9477000006,9170120275030,210,18,002919544716189,unknown,unknown,unknown

이것은 내가 시도한 것이지만 첫 번째 값만 인쇄하고 마지막 50개 레코드는 인쇄하지 않습니다. 누구든지 다음 문제를 해결하도록 도와줄 수 있나요?

awk -F ':' '{print $1}' /log

답변1

50마지막 레코드를 csv파일(쉼표로 구분) 로만 변환하려면 다음을 사용해야 합니다.

tail -50 /log | sed 's/\s:/,/g' > /some_path/data.csv

관련 정보