CSV 파일에서 데이터를 가져오는 방법 [닫기]

CSV 파일에서 데이터를 가져오는 방법 [닫기]

내 기록 아래에 CSV 파일이 있습니다. awk 조건에 따라 Status Column 값이 30보다 작을 경우 해당 Project(Column1) 값 Orange가 출력되어야 한다.

awk -F'[,]'  '{ if ( 30 >= 30 ) {print $2,$9} }' user.csv

전류 출력

Project Status
Apple "Current (days remaining : 83)"
Orange"Current (days remaining : 30)"

예상 출력

Project
Orange
ID,Project,"App System",Version,"Report Date",Status
1,Apple,NAT,0,0,0,0,09/02/2022,"Current (days remaining : 83)"
2,Orange,BAT,0,0,0,0,09/02/2022,"Current (days remaining : 30)"

누구든지 이 문제를 해결하도록 도와주실 수 있나요?

답변1

문제는 자신의 .NET 비교 연산자 -le대신 셸 비교 연산자를 사용하려고 한다는 것입니다 . 귀하의 텍스트는 요구 사항을 다음과 같이 설명합니다.awkawk<=미만대신에보다 작거나 같음, 그러나 예제 출력에서는 후자를 보여줍니다. 또한 30필드를 값과 비교하는 대신 실제로 표현식의 양쪽을 모두 얻었습니다 .

마지막으로 숫자 비교를 수행할 수 있도록 쉼표로 구분된 9번째 필드를 여러 부분으로 분할해야 합니다. 콜론( :)은 이 작업을 위한 편리한 구분 기호입니다.

awk -F, '{ split($9, c, ":"); if (NR==1 || c[2]+0 <= 30) {print $2} }' user.csv

산출

Project
Orange

관련 정보