두 개의 .csv 파일을 비교하고 차이점을 세 번째 파일에 기록합니다.

두 개의 .csv 파일을 비교하고 차이점을 세 번째 파일에 기록합니다.

두 개의 .csv 파일 test_case_list.csv 및 test_case_summary.csv가 있고 두 파일의 차이점이 있는 세 번째 파일을 생성하려고 합니다.

test_case_list.csv좋다:

cli-verify-cvlan-rewrite    ./vlan/vlan_rewrite_review.xls
cli-verify-cvlan-rewrite-lag    ./vlan/vlan_rewrite_review.xls
cli-verify-aggregation-general  ./link-aggr/aggregation.xls

test_case_summary.csv좋다:

*   cli-verify-aggregation-general  ./link-aggr/aggregation.xls
*   cli-verify-cvlan-rewrite    ./vlan/vlan_rewrite_review.xls

출력: 또 다른 .xls 또는 .csv 파일

cli-verify-cvlan-rewrite-lag    ./vlan/vlan_rewrite_review.xls

답변1

사용 grepsed:

grep -v -F -f <(sed 's/^[*[:space:]]*//' test_case_summary.csv) test_case_list.csv > diff.csv

sed명령은 모든 선행 *문자와 공백 문자를 제거하고 이 출력은 패턴 파일을 지정하는 옵션에 대한 입력 test_case_summary.csv으로 사용됩니다 .grep-f

-F패턴을 정규식 대신 고정 문자열로 해석하고 -v일치하지 않는 줄, 즉 test_case_list.csv내부 줄을 선택하는 옵션아니요패턴 파일에 제공됩니다. 그러면 출력이 파일로 리디렉션됩니다 diff.csv.

또한 전체 줄만 일치하도록 grep의 옵션을 추가할 수 있습니다.-x

관련 정보