두 개의 .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
사용 grep
및 sed
:
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