2つの.csvファイルtest_case_list.csvとtest_case_summary.csvがあり、2つのファイルの違いがある3番目のファイルを作成しようとしています。
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