単語リストを含むファイルがあります。大きなテキストファイルからこのファイル内のすべての単語をすべて削除したいです。
例:
ファイル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拡張です。