Классическая альтернатива для однобуквенных замен tr
команда, которая должна быть доступной в примерно любой системе:
$ echo "foobar" | tr a b
foobbr
tr
лучше, чем sed
для этого на самом деле начиная с использования sed
(уже не говоря о perl
или awk
) поскольку однобуквенные замены похожи на использование молотка саней для уничтожения мухи.
grep
не разработан для этого, это не изменяет свой вход, это только перерывает его.
С другой стороны, можно использовать возможности замены некоторых оболочек. Сюда использование ksh
, zsh
или bash
синтаксис:
$ foo="foobar"
$ echo "${foo//a/b}"
foobbr
Мы могли дать Вам более определенные ответы, если бы Вы объяснили точно, какую проблему Вы пытаетесь решить.
-N newline-type, --newline=newline-type Библиотека PCRE поддерживает пять различных соглашений для указания концов строк. Это односимвольные последовательности CR (возврат каретки) и LF (линейная подача), двухсимвольная последовательность CRLF, конвенция "anycrlf", которая распознает любой из трех предыдущих типов, и конвенция "any", в которой любая последовательность, заканчивающаяся строкой Unicode, считается завершающей строку. Юникодные последовательности - это только что упомянутые три, плюс VT (вертикальная закладка, U+000B), FF (подача формы, U+000C), NEL (следующая строка, U+0085), LS (разделитель строк, U+2028) и PS (разделитель абзацев, U+2029).
При сборке библиотеки PCRE указывается последовательность завершения строк по умолчанию. Обычно это стандартная последовательность для операционной системы. Если иное не указано данным параметром, pcregrep использует библиотеку по умолчанию. Возможные значения для этого параметра - CR, LF, CRLF, ANYCRLF или ANY. Это позволяет использовать pcregrep для сканирования файлов, которые пришли из других сред, без необходимости изменять их окончания строк. Если сканируемые данные не согласны с конвенцией, установленной этим параметром, pcregrep может вести себя странным образом. Обратите внимание, что эта опция не применяется к файлам, указанным опциями -f, --exclude-from или --include-from, которые, как ожидается, будут использовать стандартную последовательность строк операционной системы.Пример Другое странное поведение
Интересное изменение от lookbehind к lookahead дает результат: