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

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

sed 's/foo/bar/' * 

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

  • Как извлечь / удалить старые файлы из tarball, который был обновлен
  • Что такое «Печать в файл» и может ли он использоваться из командной строки?
  • Как перечислить файлы в zip без дополнительной информации в командной строке
  • Получить список установленных принтеров
  • Печать текста с терминала
  • Уменьшить или увеличить громкость пульса на всех выходах
  • как найти "foo" case-INsensitively?

  • Непечатаемые символы в качестве входных данных в командной строке
  • Как сравнить строки в двух файлах
  • Отправка сообщений другому пользователю
  • распечатать, если следующая строка содержит
  • Найти только сообщения от symlink
  • Скажите gzip / bzip2 / 7z / etc не сжать уже сжатые файлы?
  • One Solution collect form web for “Замените строку без учета регистра во всех файлах папок”

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

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

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

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

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