使用带有sed的字典文件

Win*_*ton 2 bash sed

我有一个blacklist.txt文件,其中包含我想要使用sed删除的关键字.

这是blacklist.txt文件包含的内容

winston@linux ] $ cat blacklist.txt   
obscure
keywords
here
...
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所做的,但目前无效.

  blacklist=$(cat blacklist.txt);
  output="filtered_file.txt"

  for i in $blacklist;
    do
      cat $input | sed 's/$i//g' >> $output
    done
Run Code Online (Sandbox Code Playgroud)

gho*_*g74 5

如果要删除包含该黑名单中的单词的行

grep -v -f blacklist.txt inputfile > filtered_file.txt
Run Code Online (Sandbox Code Playgroud)

如果你只想删除单词

awk 'FNR==NR{
 blacklist[$0]
 next
}
{
 for(i=1;i<=NF;i++){
   if ($i in blacklist){
     $i=""
   }
 }
}1' blacklist inputfile > filtered_file.txt
Run Code Online (Sandbox Code Playgroud)