Замените строку без учета регистра во всех файлах папок

Я пытаюсь заменить строку на другую во всех файлах в каталоге. Попытка использовать эту команду

sed 's/foo/bar/' * 

Но он заменяет foo а не fOo или Foo и другие.

как найти "foo" case-INsensitively?

  • Поиск текстового файла с помощью одной строки с использованием регулярных выражений
  • Как я могу манипулировать содержимым файла, дублируя и меняя некоторые части?
  • Как написать данные отдельно во многих текстовых файлах, содержащих одни и те же поля?
  • Как удалить текст перед разделителем в Linux
  • Поиск строк в файлах и представление четырех строк контекста (совпадение и три следующих)
  • Печать уникальных строк
  • Как удалить текстовые блоки в файле журнала?
  • Извлечь строку, если первое поле содержит точку
  • One Solution collect form web for “Замените строку без учета регистра во всех файлах папок”

    С некоторыми реализациями sed такими как GNU или FreeBSD:

     sed 's/foo/bar/i' ./* 

    i делаю то, что вам нужно.

    Если ваш sed не поддерживает это нестандартное расширение, вы всегда можете:

     sed 's/[fF][oO][oO]/bar/' ./* 
    Linux и Unix - лучшая ОС в мире.