テキストファイルから単語リストのすべての項目を削除するには?

テキストファイルから単語リストのすべての項目を削除するには?

単語リストを含むファイルがあります。大きなテキストファイルからこのファイル内のすべての単語をすべて削除したいです。

例:

ファイル1

queen
king

テキストファイルのサンプル

Both the king and queen are monarchs. Will the queen live? Queen, it is!

私が試したことは次のとおりです。

sed -i 's/queen/ /g' page.txt
sed -i 's/Queen/ /g' page.txt

出力

Both the and are monarchs. Will the live? , it is!

私の単語リストは膨大です(50,000単語以上)。コマンドラインでモードを指定せずにこれを行うにはどうすればよいですか?

ベストアンサー1

実際のユースケースについてはお勧めします。Perlを使ったterdonの答え

ただし、他の単語の部分文字列(「hiking」から「king」を削除)を処理しない単純なバージョンは次のとおりです。1 つの Sed コマンドを使用して別の Sed インスタンスで実行されるコマンドの生成実際のファイルに。

この場合、wordfile「King」と「Queen」が含まれ、textfileテキストが含まれます。

sed -e "$(sed 's:.*:s/&//ig:' wordfile)" textfile

i大文字と小文字を無視する」フラグは、標準ではなくGNU拡張です。

おすすめ記事