sed は複数の単語を検索し、その行を削除します。

sed は複数の単語を検索し、その行を削除します。

50000行を超えるデフォルトファイルがあり、実際のファイルから約20000行を削除する必要があります。この場合、パラメータが多すぎるため、grep -vE私が使用しているコマンドにエラーが表示されます。

sedforループを使用して削除するコマンドを使用しています。ところでsed初期化する命令が20000個あって削除するのに時間がかかります。

for i in `cat 20000-words.txt`; do 
    sed -i -e "/$i/ d" 50000-lines.txt
done

ベストアンサー1

20000-words.txt がすでに 1 行に 1 つの単語形式になっているとします。

grep -vFf 20000-words.txt 50000-lines.txt >50000-filtered-lines.txt

grepの引数は、-fコマンドライン引数として渡すのではなく、ファイルからパターンを1行に1つずつ読み込むように指示します。 grep の引数は、-Fパターンを正規表現ではなくリテラル文字列として使用する必要があることを示します。

おすすめ記事