注文する:
LC_ALL=C fgrep -f /root/inputfile.txt *.txt > outputfile.txt
入力ファイルにはこれらの内容が含まれています。
-name1:
-name2:
-othername:
*.txt
(複数のファイル)以下のような項目が含まれています。
-name:email@email:d-o-b::alias
入力ファイルから小さな名前のリストをインポートすると、一部があり、*.txt
一部はありません。他のエラー結果が表示されます。
000_na_name_000:493982:[email protected]:2000-01-05:XX:X:123.123:alias
入力には、これらの誤った結果をもたらすことはまったくなく、そのような結果がたくさんあります。
答え1
に関する質問の例を見てくださいfgrep
。
間違った点は、grepが以前outputfile.txt
に存在していた場合は、バッファサイズと入力サイズに基づいて独自の出力を再取得できることです。一致時点には存在しないため、以前にoutputfile.txt
存在しなかった場合は一致しないようです。*.txt
問題の原因ではないようですが、outputfile.txt
別の場所に保存すると何が起こるかをテストする価値があります。
そうでなければ何ができますか?
コメントでinputfile.txt
問題の原因の例を示しました。
*.txt
同じファイルで使用すると、そのファイル内の1つ以上の行が問題を引き起こすと思います。
問題のある行を見つけるには、次のようにします。バイナリ検索線の場合:線の半分を削除して機能するかどうかを試してください。問題が解決した場合は削除された行を引き続き使用し、そうでない場合は残りの行を使用してください。これで、1 行または数行だけ残るまでこの操作を繰り返します。この時、すでに理由がわかるはずです。