ただ一つのCSVファイルを別のものから差し引いても構いませんが、行が同じでない場合はそうではありません。行を比較する代わりに、1つのフィールドに一致する行があるかどうかを調べたいと思います。BASH行ごとにキー行をファイルにする
resultfile私はuは私が何を意味するか知っていると思う
EMAIL;NAME;SALUTATION;ID
[email protected];Bar;Ms;2
する必要があります最初のファイル
EMAIL;NAME;SALUTATION;ID
[email protected];Foo;Mr;1
[email protected];Bar;Ms;2
と第二のファイル
EMAIL;NAME
[email protected];Foo
;)で可能ということですどのように
bash? Javaでこれを行うのは簡単ですが、私は実際にbashでそれを行う方法を学びたいと思います。また、私は並べ替えを使用して行を比較することによって引くことができます
#!/bin/bash
echo "Substracting Files..."
sort "/tmp/list1.csv" "/tmp/list2.csv" "/tmp/list2.csv" | uniq -u >> /tmp/subList.csv
echo "Files successfully substracted."
しかし、行は同じタプルではありません。だから私はキーとラインを比較しなければならない。
提案がありますか?おかげでたくさんの..ニルス
ニース、UNIX-fooというのエレガントな使用、カット/ grepのが行います場合はawkの必要はありませんコンソールでは正常に動作 – Marcin
が、使用した(awkは時々、何のハードルールはありません、結果は私に何度も驚いている速いかもしれませんが) /tmp/substract.sh:4:構文エラー: "(予期しない – Nils
@Nils:'#!/ bin/bash'や '#!/ bin/sh'を使用していますか? 。!*プロセス置換が* 'bash'機能ですので、私は最初の' bash'oneを使用 – bmk