grep
私がよく使用した小さなコードは、以前のように動作しませんでした。以下は、Animal.txtという7行、3列のデータセットがある例です。
Animal Habitat Family
Bear forest Ursidae
Dog house Canidae
Cat house Fenidae
Wolf mountain Canidae
Eagle mountain Accipitridae
Lion sabana Fenidae
動物3匹の名前が書かれたリストがあります。私が望むのは、これらの動物の名前を含む行を抽出することです。リスト名は Animal3.txt です。
Dog
Cat
Bear
データセットとリストはすべてタブ区切りのファイルです。私が使用するコードは次のとおりです。
grep -w -F -f ./animal3.txt ./animal.txt > ./output.txt
出力は1行だけです。Bear
いくつかのフォーラムで検索しましたが、似たようなものが見つかりませんでした。何が起こっているのか、私が何をしているのかは本当にわかりません。
ベストアンサー1
コメントを通して、animal3.txt
ファイルの少なくとも一部の行の末尾にキャリッジリターンがあることを理解しています。これらの文字は使用されるパターンの一部になりgrep
、結果としてファイルのパターンが一致しなくなりますanimal.txt
。
ファイルにキャリッジリターンがあってはならない場合は、次のものを使用できます。
tr -d '\r' <animal3.txt >animal3-new.txt
削除してください。その後、animal3.txt
元のファイルを変更されたファイルに置き換えることができますanimal3-new.txt
。