Как заменить левую скобку на sed?

Я должен заменить ( с некоторым символом в моем файле, и я не могу этого сделать. \( Используется для группировки в sed и когда я использовал \\( с sed, он рассматривал его как \( символ не как просто ( . Мне кажется сложным делом.

One Solution collect form web for “Как заменить левую скобку на sed?”

Если вы используете sed без -r (расширенные регулярные выражения), он будет работать, поскольку для группировки использует \(\) а не () :

 sed -e 's/(/X/g' 

Например

 $ echo "foo (bar) (baz)" | sed -e 's/(/X/g' foo Xbar) Xbaz) 

Если вы хотите использовать -r вы можете поместить ( внутри [] , например

 sed -re 's/[(]/X/g' 

Как замечает Лекенштейн, использование tr может быть более уместным, поскольку вы просто заменяете, и вам не нужна полная сила регулярных выражений.

  • Замените LF CRLF в начале файла
  • Использование sed для исключения шаблона букв / цифр
  • Сед не работает должным образом
  • команда sed remove - включить верхний / нижний регистр
  • Удаление специальных символов из файла и сохранение разделителя полей
  • Как удалить строки между двумя скобками в Unix
  • Использование команды sed изменяет строку на определенной строке с определенной строкой
  • Как команда sed '1! G; h; $! D' отбрасывает содержимое файла?
  • Печать строки между шаблоном с помощью sed
  • Печать нескольких строк из текстового файла
  • Текстовое поле с дублирующейся информацией
  • Linux и Unix - лучшая ОС в мире.