我有一个blacklist.txt文件,其中包含要使用sed删除的关键字。
以下是blacklist.txt文件包含的内容

winston@linux ] $ cat blacklist.txt
obscure
keywords
here
...

这是我目前所拥有的,但目前还不起作用。
  blacklist=$(cat blacklist.txt);
  output="filtered_file.txt"

  for i in $blacklist;
    do
      cat $input | sed 's/$i//g' >> $output
    done

最佳答案

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

grep -v -f blacklist.txt inputfile > filtered_file.txt

如果你只想删除单词
awk 'FNR==NR{
 blacklist[$0]
 next
}
{
 for(i=1;i<=NF;i++){
   if ($i in blacklist){
     $i=""
   }
 }
}1' blacklist inputfile > filtered_file.txt

10-08 11:19