CSV 파일의 두 변수와 일치하는 특정 행의 열 12 값을 인쇄해야 함 [닫기]

CSV 파일의 두 변수와 일치하는 특정 행의 열 12 값을 인쇄해야 함 [닫기]

다음 두 가지 변수를 고려하십시오.

DC="777777"
CountryCode="IN"

CSV 파일이 있습니다. 두 번째 열에서 변수 이름을 fileSB.csv검색 하고 네 번째 열에서 변수 이름을 검색하는 명령(아래)을 찾았습니다. 두 변수가 같은 줄에서 일치하는 경우에만 해당 특정 줄이 인쇄됩니다.DCCountryCode

이제 내 요구 사항은 다음 명령을 사용하여 감지된 동일한 행/라인의 열 12에 있는 값만 인쇄하고 싶다는 것입니다. 여기서 문제는 열 12에 쉼표가 여러 개 있을 수 있으므로 열 12의 값을 인쇄할 수 없다는 것입니다.

파일 이름의 두 변수 값과 일치하는 줄을 인쇄하는 명령은 fileSB.csv다음과 같습니다.

awk -v pat1="$DC" -v pat2="$CountryCode" -F, '($2==pat1&&$4==pat2)' fileSB.csv

요약: 쉼표로 구분된 출력에서 ​​12번째 열을 가져와야 합니다 awk. 여기에는 원하는 수의 쉼표를 포함할 수 있으며 그 뒤에 또 다른 10개의 열이 올 수 있습니다.

답변1

아래 설명에 따르면 열 12에는 다양한 수의 쉼표로 구분된 항목이 포함되어 있고 그 뒤에 열이 10개 더 있습니다.

awk -v pat1="$DC" -v pat2="$CountryCode" -F, '$2 == pat1 && $4 == pat2' fileSB.csv |
cut -d, -f 12- | rev | cut -d, -f 11- | rev

cutand 호출은 rev먼저 처음 11개 열을 제거한 다음 데이터를 반전시키고 마지막 10개 열(이제 처음 10개 열은 반전됨)을 제거한 다음 다시 되돌립니다.

관련 정보