Стирание в stdin всех экземпляров регулярных выражений, определенных в файле

Я получаю что-то вроде комбинации sed 's/pattern//g' и grep -f patternfile.txt .

В принципе, я хотел бы, чтобы поток ввода был лишен всех экземпляров шаблонов регулярных выражений, определенных в patternfile.txt (который содержит одно регулярное выражение на строку), так что

cat myinitialfile.txt | magiccommands -f patternfile.txt > mycleanfile.txt

2 Solutions collect form web for “Стирание в stdin всех экземпляров регулярных выражений, определенных в файле”

 sed 's/^.*/s\/&\/\//' pattern > sed-pattern-file sed -f sed-pattern-file myinitialfile.txt > mycleanfile.txt 

Как вариант ответа уже здесь – легче еще, наверное, вытащить скрипт прямо из трубы:

 sed 's|.*|s/&//g|' <patterns | sef -f - infile >outfile 

Таким образом, вам не нужно изменять файл шаблонов – или любой другой – напрямую и вместо этого изменять его в потоке в соответствии с вашими потребностями.

  • как вставить обратную косую черту перед символом #?
  • Как усечь только заданную длину столбца?
  • заменить строку в цикле
  • awk, sed, grep, perl ... которые распечатываются в этом случае?
  • Добавить во второй столбец
  • эффект * в регулярном выражении
  • Как выбрать наивысший элемент числа во многих файлах со многими массивами
  • Выполните команду в 'sed'
  • Рекурсивный поиск / замена, учет глубины каталога
  • Чтобы передать параметр с помощью sed
  • Различия между sed на Mac OSX и другим «стандартным» sed?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.