제목이 헷갈리지 않았으면 좋겠습니다. 일반 소매업체, 거래 및 각 거래 후 잔액에 대한 정보가 포함된 일일 보고서 파일이 있습니다. 예:
TransactionDate;retailerName;retailersBalance;retailersNewBalance;TrAmount;TaxAmount
2020-03-28 23:59:00;ret1;522305800;522300200;5040;560
2020-03-28 18:47:04;ret2;3166007400;3165997400;9000;1000
2020-03-28 16:43:10;ret1;522311400;522305800;5040;560;
소매업자는 둘 이상의 거래를 할 수 있으며 그의 잔액(retailersNewBalance)은 거래에 따라 계속 변경됩니다. 각 소매업체(retailersNewBalance)의 가장 최근 잔액을 인쇄하는 보고서를 생성하려면 셸 스크립트를 사용해야 합니다. 이 예제 보고서에는 ret1이 두 번(23:59:00 및 16:43:10) 존재합니다. 추가 정보를 제공할 수 있습니까?
예상 생산량은 마지막(가장 가까운) 소매점 New Balance에서 이루어져야 합니다. 전임자:
Time Retailers Balance
================================
23:59:00 ret1 522300200
18:47:04 ret2 3165997400
답변1
입력이 날짜별로 정렬되면 최신 항목이 먼저 표시됩니다.
awk 'BEGIN{FS=";"} FNR>1 && !nameseen[$2]++ {print $1, $2, $4}' file
- "retailerName" 열의 필드가 표시되지 않는 경우에만 레코드를 인쇄합니다.
일부 형식의 예:
awk 'BEGIN {
FS=";"
printf "%9s\t%-20s\t%s\n", "Time", "Retailers", "Balance"
}
FNR>1 && !nameseen[$2]++ {
split($1,time," ")
printf "%9s\t%-20s\t%s\n", time[2], $2, $4
}' file